CameraPane.java | ●●●●● patch | view | raw | blame | history | |
GroupEditor.java | ●●●●● patch | view | raw | blame | history | |
ObjEditor.java | ●●●●● patch | view | raw | blame | history | |
Object3D.java | ●●●●● patch | view | raw | blame | history |
CameraPane.java
.. .. @@ -14374,6 +14374,7 @@ 14374 14374 public void mouseReleased(MouseEvent e) 14375 14375 { 14376 14376 movingcamera = false; 14377 + X = Y = 0;14377 14378 //System.out.println("mouseReleased: " + e); 14378 14379 clickEnd(e.getX(), e.getY(), e.getModifiersEx()); 14379 14380 } .. .. @@ -15382,7 +15383,9 @@ 15382 15383 info.bounds.setBounds(0, 0, (int) (width * zoom), (int) (height * zoom)); 15383 15384 //Image img = CreateImage(width, height); 15384 15385 //System.out.println("width = " + width + "; height = " + height + "\n"); 15386 +15385 15387 Graphics gr = g; // img.getGraphics(); 15388 +15386 15389 if (!hasMarquee) 15387 15390 { 15388 15391 if (Xmin < Xmax) // !locked) .. .. @@ -15480,14 +15483,28 @@ 15480 15483 if (!isRenderer) 15481 15484 { 15482 15485 object.drawEditHandles(info, 0); 15486 +15487 + if (drag && (X != 0 || Y != 0) && object.selection.Size() > 0)15488 + {15489 + switch (object.selection.get(0).hitSomething)15490 + {15491 + case Object3D.hitCenter: gr.setColor(Color.pink); break;15492 + case Object3D.hitRotate: gr.setColor(Color.green); break;15493 + case Object3D.hitScale: gr.setColor(Color.cyan); break;15494 + }15495 +15496 + gr.drawLine(X, Y, info.bounds.width/2, info.bounds.height/2);15497 + }15483 15498 } 15484 15499 } 15500 +15485 15501 if (isRenderer) 15486 15502 { 15487 15503 //gr.setColor(Color.black); 15488 15504 //gr.drawRect(info.bounds.x - 1, info.bounds.y - 1, info.bounds.width + 1, info.bounds.height + 1); 15489 15505 //gr.drawRect(info.bounds.x - 2, info.bounds.y - 2, info.bounds.width + 3, info.bounds.height + 3); 15490 15506 } 15507 +15491 15508 if (hasMarquee) 15492 15509 { 15493 15510 gr.setXORMode(Color.white); GroupEditor.java
.. .. @@ -74,7 +74,7 @@ 74 74 this.copy = this.group = copy; 75 75 //selectees = this.group.selectees; 76 76 77 - SetupMenu2(objEditor);77 + SetupMenu2(this); //objEditor);78 78 SetupUI2(objEditor); 79 79 objEditor.SetupUI(true); 80 80 SetupViews(objEditor); .. .. @@ -148,23 +148,8 @@ 148 148 149 149 //JTextField nameField; 150 150 151 - void SetupMenu2(ObjEditor oe)151 + void SetupMenu2(GroupEditor oe)152 152 { 153 - if (Globals.ADVANCED)154 - {155 - oe.cameraMenu.add(lookAtItem = new MenuItem("Set Interest"));156 - //cameraMenu.add(lookFromItem = new MenuItem("Look From Selection"));157 - //cameraMenu.add(switchItem = new MenuItem("Reverse View"));158 - editLeafItem = oe.cameraMenu.add(new MenuItem("Edit Leaf"));159 - oe.cameraMenu.add("-");160 - openWindowItem = oe.cameraMenu.add(new MenuItem("Edit copy..."));161 - openWindowItem.addActionListener(this);162 - editLeafItem.addActionListener(this);163 - lookAtItem.addActionListener(this);164 - //lookFromItem.addActinoListener(this);165 - //switchItem.addActionListener(this);166 - }167 -168 153 Menu menu; 169 154 oe.menuBar.add(menu = new Menu("Edit")); 170 155 //editItem = menu.add(new MenuItem("Edit")); .. .. @@ -206,7 +191,94 @@ 206 191 clearAllItem = menu.add(new MenuItem("Clear All")); 207 192 clearAllItem.addActionListener(this); 208 193 } 194 +195 + menuBar.add(cameraMenu = new Menu("View"));196 + //cameraMenu.add(zBufferItem = new CheckboxMenuItem("Z Buffer"));197 + //zBufferItem.addActionListener(this);198 + //cameraMenu.add(normalLensItem = new MenuItem("Normal Lens"));199 + //normalLensItem.addActionListener(this);200 + cameraMenu.add(revertCameraItem = new MenuItem("Revert Camera"));201 + revertCameraItem.addActionListener(this);202 +203 + cameraMenu.add(toggleFullScreenItem = new CheckboxMenuItem("Full Screen"));204 + toggleFullScreenItem.addItemListener(this);205 + toggleFullScreenItem.setState(CameraPane.FULLSCREEN);206 + cameraMenu.add("-");207 +208 + cameraMenu.add(toggleTextureItem = new CheckboxMenuItem("Texture"));209 + toggleTextureItem.addItemListener(this);210 + toggleTextureItem.setState(CameraPane.textureon);211 +212 + cameraMenu.add(toggleSwitchItem = new CheckboxMenuItem("Switch"));213 + toggleSwitchItem.addItemListener(this);214 + toggleSwitchItem.setState(CameraPane.SWITCH);215 +216 + cameraMenu.add(toggleHandleItem = new CheckboxMenuItem("Handles"));217 + toggleHandleItem.addItemListener(this);218 + toggleHandleItem.setState(CameraPane.HANDLES);219 +220 + cameraMenu.add(togglePaintItem = new CheckboxMenuItem("Paint mode"));221 + togglePaintItem.addItemListener(this);222 + togglePaintItem.setState(CameraPane.PAINTMODE);223 +224 + if (Globals.ADVANCED)225 + {226 + cameraMenu.add("-");227 + cameraMenu.add(toggleLiveItem = new CheckboxMenuItem("Live"));228 + toggleLiveItem.addItemListener(this);229 + toggleLiveItem.setState(Globals.isLIVE());209 230 231 + cameraMenu.add(stepItem = new MenuItem("Step"));232 + stepItem.addActionListener(this);233 + // cameraMenu.add(toggleDLItem = new CheckboxMenuItem("Display List"));234 + // toggleDLItem.addItemListener(this);235 + // toggleDLItem.setState(false);236 +237 + cameraMenu.add(toggleRenderItem = new CheckboxMenuItem("Render"));238 + toggleRenderItem.addItemListener(this);239 + toggleRenderItem.setState(!CameraPane.frozen);240 +241 + cameraMenu.add(toggleDebugItem = new CheckboxMenuItem("Debug"));242 + toggleDebugItem.addItemListener(this);243 + toggleDebugItem.setState(CameraPane.DEBUG);244 +245 + cameraMenu.add(toggleFrustumItem = new CheckboxMenuItem("Frustum"));246 + toggleFrustumItem.addItemListener(this);247 + toggleFrustumItem.setState(CameraPane.FRUSTUM);248 +249 + cameraMenu.add(toggleFootContactItem = new CheckboxMenuItem("Foot contact"));250 + toggleFootContactItem.addItemListener(this);251 + toggleFootContactItem.setState(CameraPane.FOOTCONTACT);252 +253 + cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline"));254 + toggleTimelineItem.addItemListener(this);255 + }256 +257 +// cameraMenu.add(toggleRootItem = new CheckboxMenuItem("Alternate Root"));258 +// toggleRootItem.addItemListener(this);259 +// toggleRootItem.setState(false);260 +// cameraMenu.add(animationItem = new CheckboxMenuItem("Animation"));261 +// animationItem.addItemListener(this);262 +// animationItem.setState(CameraPane.ANIMATION);263 + cameraMenu.add("-");264 + cameraMenu.add(editCameraItem = new MenuItem("Freeze Camera"));265 + editCameraItem.addActionListener(this);266 +267 + if (Globals.ADVANCED)268 + {269 + oe.cameraMenu.add(lookAtItem = new MenuItem("Set Interest"));270 + //cameraMenu.add(lookFromItem = new MenuItem("Look From Selection"));271 + //cameraMenu.add(switchItem = new MenuItem("Reverse View"));272 + editLeafItem = oe.cameraMenu.add(new MenuItem("Edit Leaf"));273 + oe.cameraMenu.add("-");274 + openWindowItem = oe.cameraMenu.add(new MenuItem("Edit copy..."));275 + openWindowItem.addActionListener(this);276 + editLeafItem.addActionListener(this);277 + lookAtItem.addActionListener(this);278 + //lookFromItem.addActinoListener(this);279 + //switchItem.addActionListener(this);280 + }281 +210 282 oe.menuBar.add(menu = new Menu("Setting")); 211 283 if (Globals.ADVANCED) 212 284 { .. .. @@ -443,19 +515,6 @@ 443 515 oe.menuBar.add(menu = new Menu("Insert")); 444 516 buildCreateMenu(menu); 445 517 446 - oe.menuBar.add(menu = new Menu("Include"));447 - importOBJItem = menu.add(new MenuItem("OBJ file..."));448 - importOBJItem.addActionListener(this);449 - menu.add("-");450 - import3DSItem = menu.add(new MenuItem("3DS file..."));451 - import3DSItem.addActionListener(this);452 - menu.add("-");453 - importVRMLX3DItem = menu.add(new MenuItem("VRML/X3D file..."));454 - importVRMLX3DItem.addActionListener(this);455 - menu.add("-");456 - importGFDItem = menu.add(new MenuItem("GrafreeD file..."));457 - importGFDItem.addActionListener(this);458 -459 518 oe.menuBar.add(menu = new Menu("Tools")); 460 519 buildToolsMenu(menu); 461 520 } .. .. @@ -1855,31 +1914,6 @@ 1855 1914 csg.addChild(child); 1856 1915 child.addChild(csg); 1857 1916 } else 1858 -1859 - if (source == importGFDItem)1860 - {1861 - ImportGFD();1862 - } else1863 - if (source == importVRMLX3DItem)1864 - {1865 - ImportVRMLX3D();1866 - } else1867 - if (source == import3DSItem)1868 - {1869 - objEditor.ImportJME(new com.jmex.model.converters.MaxToJme(), "3ds", "Import 3DS");1870 - } else1871 - if (source == importOBJItem)1872 - {1873 - //objEditor.ImportJME(new com.jmex.model.converters.ObjToJme(), "obj", "Import OBJ");1874 - FileDialog browser = new FileDialog(frame, "Import OBJ", FileDialog.LOAD);1875 - browser.setVisible(true);1876 - String filename = browser.getFile();1877 - if (filename != null && filename.length() > 0)1878 - {1879 - String fullname = browser.getDirectory() + filename;1880 - makeSomething(ReadOBJ(fullname), true);1881 - }1882 - } else1883 1917 if (source == computeAOItem) 1884 1918 { 1885 1919 Globals.drawMode = CameraPane.OCCLUSION; .. .. @@ -3095,7 +3129,20 @@ 3095 3129 //group.attributes = -1; 3096 3130 ResetModel(); 3097 3131 refreshContents(true); 3098 - }3132 + } else if (event.getSource() == editCameraItem)3133 + {3134 + cameraView.ProtectCamera();3135 + cameraView.repaint();3136 + return;3137 + } else if (event.getSource() == revertCameraItem)3138 + {3139 + cameraView.RevertCamera();3140 + cameraView.repaint();3141 + return;3142 + // } else if (event.getSource() == textureButton)3143 + // {3144 + // return; // true;3145 + }3099 3146 else 3100 3147 { 3101 3148 //return super.action(event, arg); .. .. @@ -4973,21 +5020,6 @@ 4973 5020 } 4974 5021 */ 4975 5022 4976 - void ImportGFD()4977 - {4978 - FileDialog browser = new FileDialog(objEditor.frame, "Import GrafreeD", FileDialog.LOAD);4979 - browser.show();4980 - String filename = browser.getFile();4981 - if (filename != null && filename.length() > 0)4982 - {4983 - String fullname = browser.getDirectory() + filename;4984 -4985 - //Object3D readobj =4986 - objEditor.ReadGFD(fullname, objEditor);4987 - //makeSomething(readobj);4988 - }4989 - }4990 -4991 5023 /* 4992 5024 public void Callback(Object obj) 4993 5025 { .. .. @@ -5011,23 +5043,6 @@ 5011 5043 } 5012 5044 */ 5013 5045 5014 - void ImportVRMLX3D()5015 - {5016 - if (Grafreed.standAlone)5017 - {5018 - /**/5019 - FileDialog browser = new FileDialog(objEditor.frame, "Import VRML/X3D", FileDialog.LOAD);5020 - browser.show();5021 - String filename = browser.getFile();5022 - if (filename != null && filename.length() > 0)5023 - {5024 - String fullname = browser.getDirectory() + filename;5025 - LoadVRMLX3D(fullname);5026 - }5027 - /**/5028 - }5029 - }5030 -5031 5046 String GetFile(String dialogName) 5032 5047 { 5033 5048 if (Grafreed.standAlone) .. .. @@ -5276,11 +5291,6 @@ 5276 5291 private MenuItem doubleItem; 5277 5292 private MenuItem tripleItem; 5278 5293 5279 - private MenuItem importGFDItem;5280 - private MenuItem importVRMLX3DItem;5281 - private MenuItem import3DSItem;5282 - private MenuItem importOBJItem;5283 -5284 5294 private MenuItem computeAOItem; 5285 5295 private MenuItem recompileItem; 5286 5296 private MenuItem editScriptItem; .. .. @@ -5290,4 +5300,8 @@ 5290 5300 private MenuItem analyzeItem; 5291 5301 private MenuItem dumpItem; 5292 5302 //boolean freezemodel = false; 5303 +5304 + Menu cameraMenu;5305 + MenuItem editCameraItem;5306 + MenuItem revertCameraItem;5293 5307 } ObjEditor.java
.. .. @@ -276,24 +276,40 @@ 276 276 void SetupMenu() 277 277 { 278 278 frame.setMenuBar(menuBar = new MenuBar()); 279 - menuBar.add(windowMenu = new Menu("File"));280 - windowMenu.add(loadItem = new MenuItem("Load..."));281 - windowMenu.add("-");282 - windowMenu.add(saveItem = new MenuItem("Save"));283 - windowMenu.add(saveAsItem = new MenuItem("Save As..."));279 + menuBar.add(fileMenu = new Menu("File"));280 + fileMenu.add(newItem = new MenuItem("New"));281 + fileMenu.add(loadItem = new MenuItem("Load..."));282 +283 + //oe.menuBar.add(menu = new Menu("Include"));284 + Menu menu = new Menu("Import");285 + importOBJItem = menu.add(new MenuItem("OBJ file..."));286 + importOBJItem.addActionListener(this);287 + import3DSItem = menu.add(new MenuItem("3DS file..."));288 + import3DSItem.addActionListener(this);289 + importVRMLX3DItem = menu.add(new MenuItem("VRML/X3D file..."));290 + importVRMLX3DItem.addActionListener(this);291 + menu.add("-");292 + importGFDItem = menu.add(new MenuItem("Grafreed file..."));293 + importGFDItem.addActionListener(this);294 + fileMenu.add(menu);295 + fileMenu.add("-");296 +297 + fileMenu.add(saveItem = new MenuItem("Save"));298 + fileMenu.add(saveAsItem = new MenuItem("Save As..."));284 299 //windowMenu.add(povItem = new MenuItem("Emit POV-Ray...")); 285 - windowMenu.add("-");286 - windowMenu.add(exportAsItem = new MenuItem("Export Selection..."));287 - windowMenu.add(reexportItem = new MenuItem("Re-export"));288 - windowMenu.add("-");300 + fileMenu.add("-");301 + fileMenu.add(exportAsItem = new MenuItem("Export Selection..."));302 + fileMenu.add(reexportItem = new MenuItem("Re-export"));303 + fileMenu.add("-");289 304 if (client.parent != null) 290 305 { 291 - windowMenu.add(closeItem = new MenuItem("Close"));306 + fileMenu.add(closeItem = new MenuItem("Close"));292 307 } else 293 308 { 294 - windowMenu.add(closeItem = new MenuItem("Exit"));309 + fileMenu.add(closeItem = new MenuItem("Exit"));295 310 } 296 311 312 + newItem.addActionListener(this);297 313 loadItem.addActionListener(this); 298 314 saveItem.addActionListener(this); 299 315 saveAsItem.addActionListener(this); .. .. @@ -301,78 +317,6 @@ 301 317 reexportItem.addActionListener(this); 302 318 //povItem.addActionListener(this); 303 319 closeItem.addActionListener(this); 304 -305 - menuBar.add(cameraMenu = new Menu("View"));306 - //cameraMenu.add(zBufferItem = new CheckboxMenuItem("Z Buffer"));307 - //zBufferItem.addActionListener(this);308 - //cameraMenu.add(normalLensItem = new MenuItem("Normal Lens"));309 - //normalLensItem.addActionListener(this);310 - cameraMenu.add(revertCameraItem = new MenuItem("Revert Camera"));311 - revertCameraItem.addActionListener(this);312 -313 - cameraMenu.add(toggleFullScreenItem = new CheckboxMenuItem("Full Screen"));314 - toggleFullScreenItem.addItemListener(this);315 - toggleFullScreenItem.setState(CameraPane.FULLSCREEN);316 - cameraMenu.add("-");317 -318 - cameraMenu.add(toggleTextureItem = new CheckboxMenuItem("Texture"));319 - toggleTextureItem.addItemListener(this);320 - toggleTextureItem.setState(CameraPane.textureon);321 -322 - cameraMenu.add(toggleSwitchItem = new CheckboxMenuItem("Switch"));323 - toggleSwitchItem.addItemListener(this);324 - toggleSwitchItem.setState(CameraPane.SWITCH);325 -326 - cameraMenu.add(toggleHandleItem = new CheckboxMenuItem("Handles"));327 - toggleHandleItem.addItemListener(this);328 - toggleHandleItem.setState(CameraPane.HANDLES);329 -330 - cameraMenu.add(togglePaintItem = new CheckboxMenuItem("Paint mode"));331 - togglePaintItem.addItemListener(this);332 - togglePaintItem.setState(CameraPane.PAINTMODE);333 -334 - if (Globals.ADVANCED)335 - {336 - cameraMenu.add("-");337 - cameraMenu.add(toggleLiveItem = new CheckboxMenuItem("Live"));338 - toggleLiveItem.addItemListener(this);339 - toggleLiveItem.setState(Globals.isLIVE());340 -341 - cameraMenu.add(stepItem = new MenuItem("Step"));342 - stepItem.addActionListener(this);343 - // cameraMenu.add(toggleDLItem = new CheckboxMenuItem("Display List"));344 - // toggleDLItem.addItemListener(this);345 - // toggleDLItem.setState(false);346 -347 - cameraMenu.add(toggleRenderItem = new CheckboxMenuItem("Render"));348 - toggleRenderItem.addItemListener(this);349 - toggleRenderItem.setState(!CameraPane.frozen);350 -351 - cameraMenu.add(toggleDebugItem = new CheckboxMenuItem("Debug"));352 - toggleDebugItem.addItemListener(this);353 - toggleDebugItem.setState(CameraPane.DEBUG);354 -355 - cameraMenu.add(toggleFrustumItem = new CheckboxMenuItem("Frustum"));356 - toggleFrustumItem.addItemListener(this);357 - toggleFrustumItem.setState(CameraPane.FRUSTUM);358 -359 - cameraMenu.add(toggleFootContactItem = new CheckboxMenuItem("Foot contact"));360 - toggleFootContactItem.addItemListener(this);361 - toggleFootContactItem.setState(CameraPane.FOOTCONTACT);362 -363 - cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline"));364 - toggleTimelineItem.addItemListener(this);365 - }366 -367 -// cameraMenu.add(toggleRootItem = new CheckboxMenuItem("Alternate Root"));368 -// toggleRootItem.addItemListener(this);369 -// toggleRootItem.setState(false);370 -// cameraMenu.add(animationItem = new CheckboxMenuItem("Animation"));371 -// animationItem.addItemListener(this);372 -// animationItem.setState(CameraPane.ANIMATION);373 - cameraMenu.add("-");374 - cameraMenu.add(editCameraItem = new MenuItem("Freeze Camera"));375 - editCameraItem.addActionListener(this);376 320 377 321 objectPanel = new JTabbedPane(); 378 322 toolbarPanel = new JPanel(); .. .. @@ -3052,8 +2996,9 @@ 3052 2996 3053 2997 public void actionPerformed(ActionEvent event) 3054 2998 { 2999 + Object source = event.getSource();3055 3000 // SCRIPT DIALOG 3056 - if (event.getSource() == okbutton)3001 + if (source == okbutton)3057 3002 { 3058 3003 textpanel.setVisible(false); 3059 3004 textpanel.remove(textarea); .. .. @@ -3065,7 +3010,7 @@ 3065 3010 textarea = null; 3066 3011 textpanel = null; 3067 3012 } 3068 - if (event.getSource() == cancelbutton)3013 + if (source == cancelbutton)3069 3014 { 3070 3015 textpanel.setVisible(false); 3071 3016 textpanel.remove(textarea); .. .. @@ -3077,50 +3022,50 @@ 3077 3022 //applySelf(); 3078 3023 //client.refreshEditWindow(); 3079 3024 //refreshContents(); 3080 - if (event.getSource() == nameField)3025 + if (source == nameField)3081 3026 { 3082 3027 //System.out.println("ObjEditor " + event); 3083 3028 applySelf0(true); 3084 3029 //parent.applySelf(); 3085 3030 objEditor.refreshContents(); 3086 - } else if (event.getSource() == resetButton)3031 + } else if (source == resetButton)3087 3032 { 3088 3033 CameraPane.fullreset = true; 3089 3034 copy.Reset(); // ResetMeshes(); 3090 3035 copy.Touch(); 3091 3036 objEditor.refreshContents(); 3092 - } else if (event.getSource() == stepItem)3037 + } else if (source == stepItem)3093 3038 { 3094 3039 //cameraView.ONESTEP = true; 3095 3040 Globals.ONESTEP = true; 3096 3041 cameraView.repaint(); 3097 3042 return; 3098 - } else if (event.getSource() == stepButton)3043 + } else if (source == stepButton)3099 3044 { 3100 3045 copy.Step(); 3101 3046 copy.Touch(); 3102 3047 objEditor.refreshContents(); 3103 - } else if (event.getSource() == slowerButton)3048 + } else if (source == slowerButton)3104 3049 { 3105 3050 copy.Slower(); 3106 3051 copy.Touch(); 3107 3052 objEditor.refreshContents(); 3108 - } else if (event.getSource() == fasterButton)3053 + } else if (source == fasterButton)3109 3054 { 3110 3055 copy.Faster(); 3111 3056 copy.Touch(); 3112 3057 objEditor.refreshContents(); 3113 - } else if (event.getSource() == remarkButton)3058 + } else if (source == remarkButton)3114 3059 { 3115 3060 copy.Remark(); 3116 3061 copy.Touch(); 3117 3062 objEditor.refreshContents(); 3118 - } else if (event.getSource() == stepAllButton)3063 + } else if (source == stepAllButton)3119 3064 { 3120 3065 copy.StepAll(); 3121 3066 copy.Touch(); 3122 3067 objEditor.refreshContents(); 3123 - } else if (event.getSource() == resetAllButton)3068 + } else if (source == resetAllButton)3124 3069 { 3125 3070 //CameraPane.fullreset = true; 3126 3071 copy.ResetAll(); // ResetMeshes(); .. .. @@ -3153,53 +3098,75 @@ 3153 3098 // Close(); 3154 3099 // } 3155 3100 // else 3156 - if (event.getSource() == resetSlidersButton)3101 + if (source == resetSlidersButton)3157 3102 { 3158 3103 ResetSliders(); 3159 - } else if (event.getSource() == clearMaterialButton)3104 + } else if (source == clearMaterialButton)3160 3105 { 3161 3106 ClearMaterial(); 3162 - } else if (event.getSource() == createMaterialButton)3107 + } else if (source == createMaterialButton)3163 3108 { 3164 3109 CreateMaterial(); 3165 - } else if (event.getSource() == clearPanelButton)3110 + } else if (source == clearPanelButton)3166 3111 { 3167 3112 copy.ClearUI(); 3168 3113 refreshContents(true); 3169 - } /*3170 - }3171 -3172 - public boolean action(Event event, Object arg)3173 - {3174 - */ else if (event.getSource() == closeItem)3114 + } else if (source == importGFDItem)3115 + {3116 + ImportGFD();3117 + } else3118 + if (source == importVRMLX3DItem)3119 + {3120 + ImportVRMLX3D();3121 + } else3122 + if (source == import3DSItem)3123 + {3124 + objEditor.ImportJME(new com.jmex.model.converters.MaxToJme(), "3ds", "Import 3DS");3125 + } else3126 + if (source == importOBJItem)3127 + {3128 + //objEditor.ImportJME(new com.jmex.model.converters.ObjToJme(), "obj", "Import OBJ");3129 + FileDialog browser = new FileDialog(frame, "Import OBJ", FileDialog.LOAD);3130 + browser.setVisible(true);3131 + String filename = browser.getFile();3132 + if (filename != null && filename.length() > 0)3133 + {3134 + String fullname = browser.getDirectory() + filename;3135 + makeSomething(ReadOBJ(fullname), true);3136 + }3137 + } else3138 + if (source == closeItem)3175 3139 { 3176 3140 Close(); 3177 3141 //return true; 3178 - } else if (event.getSource() == loadItem)3142 + } else if (source == loadItem)3179 3143 { 3180 3144 load(); 3181 3145 //return true; 3182 - } else if (event.getSource() == saveItem)3146 + } else if (source == newItem)3147 + {3148 + New();3149 + } else if (source == saveItem)3183 3150 { 3184 3151 save(); 3185 3152 //return true; 3186 - } else if (event.getSource() == saveAsItem)3153 + } else if (source == saveAsItem)3187 3154 { 3188 3155 saveAs(); 3189 3156 //return true; 3190 - } else if (event.getSource() == reexportItem)3157 + } else if (source == reexportItem)3191 3158 { 3192 3159 reexport(); 3193 3160 //return true; 3194 - } else if (event.getSource() == exportAsItem)3161 + } else if (source == exportAsItem)3195 3162 { 3196 3163 export(); 3197 3164 //return true; 3198 - } else if (event.getSource() == povItem)3165 + } else if (source == povItem)3199 3166 { 3200 3167 generatePOV(); 3201 3168 //return true; 3202 - } else if (event.getSource() == zBufferItem)3169 + } else if (source == zBufferItem)3203 3170 { 3204 3171 try 3205 3172 { .. .. @@ -3221,21 +3188,8 @@ 3221 3188 cameraView.repaint(); 3222 3189 //return true; 3223 3190 } 3224 - */ else if (event.getSource() == editCameraItem)3225 - {3226 - cameraView.ProtectCamera();3227 - cameraView.repaint();3228 - return;3229 - } else if (event.getSource() == revertCameraItem)3230 - {3231 - cameraView.RevertCamera();3232 - cameraView.repaint();3233 - return;3234 -// } else if (event.getSource() == textureButton)3235 -// {3236 -// return; // true;3237 - } else // combos...3238 - if (event.getSource() == texresMenu)3191 + */ else // combos...3192 + if (source == texresMenu)3239 3193 { 3240 3194 System.err.println("Object = " + copy + "; change value " + copy.texres + " to " + texresMenu.getSelectedIndex()); 3241 3195 copy.texres = texresMenu.getSelectedIndex(); .. .. @@ -3247,6 +3201,48 @@ 3247 3201 } 3248 3202 } 3249 3203 3204 + void New()3205 + {3206 + while (copy.Size() > 1)3207 + {3208 + copy.remove(1);3209 + }3210 + ResetModel();3211 + objEditor.refreshContents();3212 + }3213 +3214 + void ImportGFD()3215 + {3216 + FileDialog browser = new FileDialog(objEditor.frame, "Import GrafreeD", FileDialog.LOAD);3217 + browser.show();3218 + String filename = browser.getFile();3219 + if (filename != null && filename.length() > 0)3220 + {3221 + String fullname = browser.getDirectory() + filename;3222 +3223 + //Object3D readobj =3224 + objEditor.ReadGFD(fullname, objEditor);3225 + //makeSomething(readobj);3226 + }3227 + }3228 +3229 + void ImportVRMLX3D()3230 + {3231 + if (Grafreed.standAlone)3232 + {3233 + /**/3234 + FileDialog browser = new FileDialog(objEditor.frame, "Import VRML/X3D", FileDialog.LOAD);3235 + browser.show();3236 + String filename = browser.getFile();3237 + if (filename != null && filename.length() > 0)3238 + {3239 + String fullname = browser.getDirectory() + filename;3240 + LoadVRMLX3D(fullname);3241 + }3242 + /**/3243 + }3244 + }3245 +3250 3246 void ToggleAnimation() 3251 3247 { 3252 3248 if (!Globals.ANIMATION) .. .. @@ -4501,7 +4497,8 @@ 4501 4497 Object3D client; 4502 4498 Object3D copy; 4503 4499 MenuBar menuBar; 4504 - Menu windowMenu;4500 + Menu fileMenu;4501 + MenuItem newItem;4505 4502 MenuItem loadItem; 4506 4503 MenuItem saveItem; 4507 4504 MenuItem saveAsItem; .. .. @@ -4509,11 +4506,9 @@ 4509 4506 MenuItem reexportItem; 4510 4507 MenuItem povItem; 4511 4508 MenuItem closeItem; 4512 - Menu cameraMenu;4509 +4513 4510 CheckboxMenuItem zBufferItem; 4514 4511 //MenuItem normalLensItem; 4515 - MenuItem editCameraItem;4516 - MenuItem revertCameraItem;4517 4512 MenuItem stepItem; 4518 4513 CheckboxMenuItem toggleLiveItem; 4519 4514 CheckboxMenuItem toggleFullScreenItem; .. .. @@ -4661,4 +4656,9 @@ 4661 4656 //ObjectUI parent; 4662 4657 4663 4658 cNumberSlider normalpushField; 4659 +4660 + private MenuItem importGFDItem;4661 + private MenuItem importVRMLX3DItem;4662 + private MenuItem import3DSItem;4663 + private MenuItem importOBJItem;4664 4664 } Object3D.java
.. .. @@ -775,7 +775,7 @@ 775 775 if (step == 0) 776 776 step = 1; 777 777 if (maxcount == 0) 778 - maxcount = 2048; // 4;778 + maxcount = 128; // 2048; // 4;779 779 // if (acceleration == 0) 780 780 // acceleration = 10; 781 781 if (delay == 0) // serial .. .. @@ -6950,8 +6950,8 @@ 6950 6950 // { 6951 6951 // CameraPane.Ymax = spoth; 6952 6952 // } 6953 - info.g.drawLine(spotw, spoth, spotw, spoth - 15);6954 - info.g.drawLine(spotw, spoth, spotw - 15, spoth);6953 + // bonhommes info.g.drawLine(spotw, spoth, spotw, spoth - 15);6954 + //info.g.drawLine(spotw, spoth, spotw - 15, spoth);6955 6955 spot.translate(0, -32); 6956 6956 info.g.setColor(Color.green); 6957 6957 info.g.fillRect(spot.x, spot.y, spot.width, spot.height); .. .. @@ -7006,7 +7006,7 @@ 7006 7006 startX = info.x; 7007 7007 startY = info.y; 7008 7008 7009 - hitSomething = 0;7009 + hitSomething = -1;7010 7010 cVector origin = new cVector(); 7011 7011 //LA.xformPos(origin, toParent, origin); 7012 7012 Rectangle spot = new Rectangle(); .. .. @@ -7082,6 +7082,7 @@ 7082 7082 //System.out.println("hitSomething = " + hitSomething); 7083 7083 7084 7084 double scale = 0.005f * info.camera.Distance(); 7085 +7085 7086 cVector xlate = new cVector(); 7086 7087 //cVector xlate2 = new cVector(); 7087 7088 switch (hitSomething) .. .. @@ -7230,24 +7231,27 @@ 7230 7231 7231 7232 case hitScale: // scale 7232 7233 double hScale = (double) (info.x - centerPt.x) / 32; 7234 + double sign = 1;7235 + if (hScale < 0)7236 + {7237 + sign = -1;7238 + }7239 + hScale = sign*Math.pow(sign*hScale, scale * 50);7233 7240 if (hScale < 0.01) 7234 7241 { 7235 - hScale = 0.01;7242 + //hScale = 0.01;7236 7243 } 7237 - hScale = Math.pow(hScale, scale * 50);7238 - if (hScale < 0.01)7239 - {7240 - hScale = 0.01;7241 - }7244 +7242 7245 double vScale = (double) (info.y - centerPt.y) / 32; 7243 - if (vScale < 0.01)7246 + sign = 1;7247 + if (vScale < 0)7244 7248 { 7245 - vScale = 0.01;7249 + sign = -1;7246 7250 } 7247 - vScale = Math.pow(vScale, scale * 50);7251 + vScale = sign*Math.pow(sign*vScale, scale * 50);7248 7252 if (vScale < 0.01) 7249 7253 { 7250 - vScale = 0.01;7254 + //vScale = 0.01;7251 7255 } 7252 7256 LA.matCopy(startMat, toParent); 7253 7257 /**/ .. .. @@ -7258,17 +7262,24 @@ 7258 7262 } 7259 7263 /**/ 7260 7264 7265 + double totalScale = Math.sqrt(hScale*hScale + vScale*vScale) / Math.sqrt(2);7266 +7267 + if (totalScale < 0.01)7268 + {7269 + totalScale = 0.01;7270 + }7271 +7261 7272 switch (info.pane.RenderCamera().viewCode) 7262 7273 { 7263 7274 case 3: // '\001' 7264 7275 if (modified) 7265 7276 { 7266 7277 //LA.matScale(toParent, 1, hScale, vScale); 7267 - LA.matScale(toParent, vScale, 1, 1);7278 + LA.matScale(toParent, totalScale, 1, 1);7268 7279 } // vScale, 1); 7269 7280 else 7270 7281 { 7271 - LA.matScale(toParent, vScale, vScale, vScale);7282 + LA.matScale(toParent, totalScale, totalScale, totalScale);7272 7283 } // vScale, 1); 7273 7284 break; 7274 7285 .. .. @@ -7276,10 +7287,10 @@ 7276 7287 if (modified) 7277 7288 { 7278 7289 //LA.matScale(toParent, hScale, 1, vScale); 7279 - LA.matScale(toParent, 1, vScale, 1);7290 + LA.matScale(toParent, 1, totalScale, 1);7280 7291 } else 7281 7292 { 7282 - LA.matScale(toParent, vScale, 1, vScale);7293 + LA.matScale(toParent, totalScale, 1, totalScale);7283 7294 } 7284 7295 break; 7285 7296 .. .. @@ -7287,10 +7298,10 @@ 7287 7298 if (modified) 7288 7299 { 7289 7300 //LA.matScale(toParent, hScale, vScale, 1); 7290 - LA.matScale(toParent, 1, 1, vScale);7301 + LA.matScale(toParent, 1, 1, totalScale);7291 7302 } else 7292 7303 { 7293 - LA.matScale(toParent, vScale, vScale, 1);7304 + LA.matScale(toParent, totalScale, totalScale, 1);7294 7305 } 7295 7306 break; 7296 7307 } .. .. @@ -7431,7 +7442,7 @@ 7431 7442 objname = name + " " + System.identityHashCode(this) + " (" + parent.name + " " + System.identityHashCode(parent) + ")"; 7432 7443 } else 7433 7444 { 7434 - objname = GetName() + (Math.abs(count) == 1000 ? (count == 1000 ? " " : " * ") : (" (" + (count /*- 1*/) + ")")) + /*(IsSelected()?"(selected) ":"") + (touched?"(touched) ":"") */ "";7445 + objname = GetName() + (Math.abs(count) == 1000 ? (count == 1000 ? " " : " * ") : (" (" + (count - 1) + ")")) + /*(IsSelected()?"(selected) ":"") + (touched?"(touched) ":"") */ "";7435 7446 } // + super.toString(); 7436 7447 //return name + " (" + (SizeOf.deepSizeOf(this)/1024) + "K) " + this.getClass().getName(); 7437 7448 .. .. @@ -7679,9 +7690,9 @@ 7679 7690 private static cVector edge2 = new cVector(); 7680 7691 //private static cVector norm = new cVector(); 7681 7692 /*transient private*/ int hitSomething; 7682 - private static final int hitCenter = 1;7683 - private static final int hitScale = 2;7684 - private static final int hitRotate = 3;7693 + static final int hitCenter = 1;7694 + static final int hitScale = 2;7695 + static final int hitRotate = 3;7685 7696 /*transient*/ /*private*/ int viewCode; // Now used for transparency cache flag 7686 7697 /*transient*/ private Point centerPt; 7687 7698 /*transient*/ private int startX;