Normand Briere
2019-06-09 c5b599b48b333b34e554b464aefbca0b9bc66275
Menu cleanup + transform feedback.
4 files modified
536 ■■■■ changed files
CameraPane.java 17 ●●●●● patch | view | raw | blame | history
GroupEditor.java 200 ●●●● patch | view | raw | blame | history
ObjEditor.java 260 ●●●● patch | view | raw | blame | history
Object3D.java 59 ●●●●● patch | view | raw | blame | history
CameraPane.java
....@@ -14374,6 +14374,7 @@
1437414374 public void mouseReleased(MouseEvent e)
1437514375 {
1437614376 movingcamera = false;
14377
+ X = Y = 0;
1437714378 //System.out.println("mouseReleased: " + e);
1437814379 clickEnd(e.getX(), e.getY(), e.getModifiersEx());
1437914380 }
....@@ -15382,7 +15383,9 @@
1538215383 info.bounds.setBounds(0, 0, (int) (width * zoom), (int) (height * zoom));
1538315384 //Image img = CreateImage(width, height);
1538415385 //System.out.println("width = " + width + "; height = " + height + "\n");
15386
+
1538515387 Graphics gr = g; // img.getGraphics();
15388
+
1538615389 if (!hasMarquee)
1538715390 {
1538815391 if (Xmin < Xmax) // !locked)
....@@ -15480,14 +15483,28 @@
1548015483 if (!isRenderer)
1548115484 {
1548215485 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
+ }
1548315498 }
1548415499 }
15500
+
1548515501 if (isRenderer)
1548615502 {
1548715503 //gr.setColor(Color.black);
1548815504 //gr.drawRect(info.bounds.x - 1, info.bounds.y - 1, info.bounds.width + 1, info.bounds.height + 1);
1548915505 //gr.drawRect(info.bounds.x - 2, info.bounds.y - 2, info.bounds.width + 3, info.bounds.height + 3);
1549015506 }
15507
+
1549115508 if (hasMarquee)
1549215509 {
1549315510 gr.setXORMode(Color.white);
GroupEditor.java
....@@ -74,7 +74,7 @@
7474 this.copy = this.group = copy;
7575 //selectees = this.group.selectees;
7676
77
- SetupMenu2(objEditor);
77
+ SetupMenu2(this); //objEditor);
7878 SetupUI2(objEditor);
7979 objEditor.SetupUI(true);
8080 SetupViews(objEditor);
....@@ -148,23 +148,8 @@
148148
149149 //JTextField nameField;
150150
151
- void SetupMenu2(ObjEditor oe)
151
+ void SetupMenu2(GroupEditor oe)
152152 {
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
-
168153 Menu menu;
169154 oe.menuBar.add(menu = new Menu("Edit"));
170155 //editItem = menu.add(new MenuItem("Edit"));
....@@ -206,7 +191,94 @@
206191 clearAllItem = menu.add(new MenuItem("Clear All"));
207192 clearAllItem.addActionListener(this);
208193 }
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());
209230
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
+
210282 oe.menuBar.add(menu = new Menu("Setting"));
211283 if (Globals.ADVANCED)
212284 {
....@@ -443,19 +515,6 @@
443515 oe.menuBar.add(menu = new Menu("Insert"));
444516 buildCreateMenu(menu);
445517
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
-
459518 oe.menuBar.add(menu = new Menu("Tools"));
460519 buildToolsMenu(menu);
461520 }
....@@ -1855,31 +1914,6 @@
18551914 csg.addChild(child);
18561915 child.addChild(csg);
18571916 } else
1858
-
1859
- if (source == importGFDItem)
1860
- {
1861
- ImportGFD();
1862
- } else
1863
- if (source == importVRMLX3DItem)
1864
- {
1865
- ImportVRMLX3D();
1866
- } else
1867
- if (source == import3DSItem)
1868
- {
1869
- objEditor.ImportJME(new com.jmex.model.converters.MaxToJme(), "3ds", "Import 3DS");
1870
- } else
1871
- 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
- } else
18831917 if (source == computeAOItem)
18841918 {
18851919 Globals.drawMode = CameraPane.OCCLUSION;
....@@ -3095,7 +3129,20 @@
30953129 //group.attributes = -1;
30963130 ResetModel();
30973131 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
+ }
30993146 else
31003147 {
31013148 //return super.action(event, arg);
....@@ -4973,21 +5020,6 @@
49735020 }
49745021 */
49755022
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
-
49915023 /*
49925024 public void Callback(Object obj)
49935025 {
....@@ -5011,23 +5043,6 @@
50115043 }
50125044 */
50135045
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
-
50315046 String GetFile(String dialogName)
50325047 {
50335048 if (Grafreed.standAlone)
....@@ -5276,11 +5291,6 @@
52765291 private MenuItem doubleItem;
52775292 private MenuItem tripleItem;
52785293
5279
- private MenuItem importGFDItem;
5280
- private MenuItem importVRMLX3DItem;
5281
- private MenuItem import3DSItem;
5282
- private MenuItem importOBJItem;
5283
-
52845294 private MenuItem computeAOItem;
52855295 private MenuItem recompileItem;
52865296 private MenuItem editScriptItem;
....@@ -5290,4 +5300,8 @@
52905300 private MenuItem analyzeItem;
52915301 private MenuItem dumpItem;
52925302 //boolean freezemodel = false;
5303
+
5304
+ Menu cameraMenu;
5305
+ MenuItem editCameraItem;
5306
+ MenuItem revertCameraItem;
52935307 }
ObjEditor.java
....@@ -276,24 +276,40 @@
276276 void SetupMenu()
277277 {
278278 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..."));
284299 //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("-");
289304 if (client.parent != null)
290305 {
291
- windowMenu.add(closeItem = new MenuItem("Close"));
306
+ fileMenu.add(closeItem = new MenuItem("Close"));
292307 } else
293308 {
294
- windowMenu.add(closeItem = new MenuItem("Exit"));
309
+ fileMenu.add(closeItem = new MenuItem("Exit"));
295310 }
296311
312
+ newItem.addActionListener(this);
297313 loadItem.addActionListener(this);
298314 saveItem.addActionListener(this);
299315 saveAsItem.addActionListener(this);
....@@ -301,78 +317,6 @@
301317 reexportItem.addActionListener(this);
302318 //povItem.addActionListener(this);
303319 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);
376320
377321 objectPanel = new JTabbedPane();
378322 toolbarPanel = new JPanel();
....@@ -3052,8 +2996,9 @@
30522996
30532997 public void actionPerformed(ActionEvent event)
30542998 {
2999
+ Object source = event.getSource();
30553000 // SCRIPT DIALOG
3056
- if (event.getSource() == okbutton)
3001
+ if (source == okbutton)
30573002 {
30583003 textpanel.setVisible(false);
30593004 textpanel.remove(textarea);
....@@ -3065,7 +3010,7 @@
30653010 textarea = null;
30663011 textpanel = null;
30673012 }
3068
- if (event.getSource() == cancelbutton)
3013
+ if (source == cancelbutton)
30693014 {
30703015 textpanel.setVisible(false);
30713016 textpanel.remove(textarea);
....@@ -3077,50 +3022,50 @@
30773022 //applySelf();
30783023 //client.refreshEditWindow();
30793024 //refreshContents();
3080
- if (event.getSource() == nameField)
3025
+ if (source == nameField)
30813026 {
30823027 //System.out.println("ObjEditor " + event);
30833028 applySelf0(true);
30843029 //parent.applySelf();
30853030 objEditor.refreshContents();
3086
- } else if (event.getSource() == resetButton)
3031
+ } else if (source == resetButton)
30873032 {
30883033 CameraPane.fullreset = true;
30893034 copy.Reset(); // ResetMeshes();
30903035 copy.Touch();
30913036 objEditor.refreshContents();
3092
- } else if (event.getSource() == stepItem)
3037
+ } else if (source == stepItem)
30933038 {
30943039 //cameraView.ONESTEP = true;
30953040 Globals.ONESTEP = true;
30963041 cameraView.repaint();
30973042 return;
3098
- } else if (event.getSource() == stepButton)
3043
+ } else if (source == stepButton)
30993044 {
31003045 copy.Step();
31013046 copy.Touch();
31023047 objEditor.refreshContents();
3103
- } else if (event.getSource() == slowerButton)
3048
+ } else if (source == slowerButton)
31043049 {
31053050 copy.Slower();
31063051 copy.Touch();
31073052 objEditor.refreshContents();
3108
- } else if (event.getSource() == fasterButton)
3053
+ } else if (source == fasterButton)
31093054 {
31103055 copy.Faster();
31113056 copy.Touch();
31123057 objEditor.refreshContents();
3113
- } else if (event.getSource() == remarkButton)
3058
+ } else if (source == remarkButton)
31143059 {
31153060 copy.Remark();
31163061 copy.Touch();
31173062 objEditor.refreshContents();
3118
- } else if (event.getSource() == stepAllButton)
3063
+ } else if (source == stepAllButton)
31193064 {
31203065 copy.StepAll();
31213066 copy.Touch();
31223067 objEditor.refreshContents();
3123
- } else if (event.getSource() == resetAllButton)
3068
+ } else if (source == resetAllButton)
31243069 {
31253070 //CameraPane.fullreset = true;
31263071 copy.ResetAll(); // ResetMeshes();
....@@ -3153,53 +3098,75 @@
31533098 // Close();
31543099 // }
31553100 // else
3156
- if (event.getSource() == resetSlidersButton)
3101
+ if (source == resetSlidersButton)
31573102 {
31583103 ResetSliders();
3159
- } else if (event.getSource() == clearMaterialButton)
3104
+ } else if (source == clearMaterialButton)
31603105 {
31613106 ClearMaterial();
3162
- } else if (event.getSource() == createMaterialButton)
3107
+ } else if (source == createMaterialButton)
31633108 {
31643109 CreateMaterial();
3165
- } else if (event.getSource() == clearPanelButton)
3110
+ } else if (source == clearPanelButton)
31663111 {
31673112 copy.ClearUI();
31683113 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
+ } else
3118
+ if (source == importVRMLX3DItem)
3119
+ {
3120
+ ImportVRMLX3D();
3121
+ } else
3122
+ if (source == import3DSItem)
3123
+ {
3124
+ objEditor.ImportJME(new com.jmex.model.converters.MaxToJme(), "3ds", "Import 3DS");
3125
+ } else
3126
+ 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
+ } else
3138
+ if (source == closeItem)
31753139 {
31763140 Close();
31773141 //return true;
3178
- } else if (event.getSource() == loadItem)
3142
+ } else if (source == loadItem)
31793143 {
31803144 load();
31813145 //return true;
3182
- } else if (event.getSource() == saveItem)
3146
+ } else if (source == newItem)
3147
+ {
3148
+ New();
3149
+ } else if (source == saveItem)
31833150 {
31843151 save();
31853152 //return true;
3186
- } else if (event.getSource() == saveAsItem)
3153
+ } else if (source == saveAsItem)
31873154 {
31883155 saveAs();
31893156 //return true;
3190
- } else if (event.getSource() == reexportItem)
3157
+ } else if (source == reexportItem)
31913158 {
31923159 reexport();
31933160 //return true;
3194
- } else if (event.getSource() == exportAsItem)
3161
+ } else if (source == exportAsItem)
31953162 {
31963163 export();
31973164 //return true;
3198
- } else if (event.getSource() == povItem)
3165
+ } else if (source == povItem)
31993166 {
32003167 generatePOV();
32013168 //return true;
3202
- } else if (event.getSource() == zBufferItem)
3169
+ } else if (source == zBufferItem)
32033170 {
32043171 try
32053172 {
....@@ -3221,21 +3188,8 @@
32213188 cameraView.repaint();
32223189 //return true;
32233190 }
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)
32393193 {
32403194 System.err.println("Object = " + copy + "; change value " + copy.texres + " to " + texresMenu.getSelectedIndex());
32413195 copy.texres = texresMenu.getSelectedIndex();
....@@ -3247,6 +3201,48 @@
32473201 }
32483202 }
32493203
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
+
32503246 void ToggleAnimation()
32513247 {
32523248 if (!Globals.ANIMATION)
....@@ -4501,7 +4497,8 @@
45014497 Object3D client;
45024498 Object3D copy;
45034499 MenuBar menuBar;
4504
- Menu windowMenu;
4500
+ Menu fileMenu;
4501
+ MenuItem newItem;
45054502 MenuItem loadItem;
45064503 MenuItem saveItem;
45074504 MenuItem saveAsItem;
....@@ -4509,11 +4506,9 @@
45094506 MenuItem reexportItem;
45104507 MenuItem povItem;
45114508 MenuItem closeItem;
4512
- Menu cameraMenu;
4509
+
45134510 CheckboxMenuItem zBufferItem;
45144511 //MenuItem normalLensItem;
4515
- MenuItem editCameraItem;
4516
- MenuItem revertCameraItem;
45174512 MenuItem stepItem;
45184513 CheckboxMenuItem toggleLiveItem;
45194514 CheckboxMenuItem toggleFullScreenItem;
....@@ -4661,4 +4656,9 @@
46614656 //ObjectUI parent;
46624657
46634658 cNumberSlider normalpushField;
4659
+
4660
+ private MenuItem importGFDItem;
4661
+ private MenuItem importVRMLX3DItem;
4662
+ private MenuItem import3DSItem;
4663
+ private MenuItem importOBJItem;
46644664 }
Object3D.java
....@@ -775,7 +775,7 @@
775775 if (step == 0)
776776 step = 1;
777777 if (maxcount == 0)
778
- maxcount = 2048; // 4;
778
+ maxcount = 128; // 2048; // 4;
779779 // if (acceleration == 0)
780780 // acceleration = 10;
781781 if (delay == 0) // serial
....@@ -6950,8 +6950,8 @@
69506950 // {
69516951 // CameraPane.Ymax = spoth;
69526952 // }
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);
69556955 spot.translate(0, -32);
69566956 info.g.setColor(Color.green);
69576957 info.g.fillRect(spot.x, spot.y, spot.width, spot.height);
....@@ -7006,7 +7006,7 @@
70067006 startX = info.x;
70077007 startY = info.y;
70087008
7009
- hitSomething = 0;
7009
+ hitSomething = -1;
70107010 cVector origin = new cVector();
70117011 //LA.xformPos(origin, toParent, origin);
70127012 Rectangle spot = new Rectangle();
....@@ -7082,6 +7082,7 @@
70827082 //System.out.println("hitSomething = " + hitSomething);
70837083
70847084 double scale = 0.005f * info.camera.Distance();
7085
+
70857086 cVector xlate = new cVector();
70867087 //cVector xlate2 = new cVector();
70877088 switch (hitSomething)
....@@ -7230,24 +7231,27 @@
72307231
72317232 case hitScale: // scale
72327233 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);
72337240 if (hScale < 0.01)
72347241 {
7235
- hScale = 0.01;
7242
+ //hScale = 0.01;
72367243 }
7237
- hScale = Math.pow(hScale, scale * 50);
7238
- if (hScale < 0.01)
7239
- {
7240
- hScale = 0.01;
7241
- }
7244
+
72427245 double vScale = (double) (info.y - centerPt.y) / 32;
7243
- if (vScale < 0.01)
7246
+ sign = 1;
7247
+ if (vScale < 0)
72447248 {
7245
- vScale = 0.01;
7249
+ sign = -1;
72467250 }
7247
- vScale = Math.pow(vScale, scale * 50);
7251
+ vScale = sign*Math.pow(sign*vScale, scale * 50);
72487252 if (vScale < 0.01)
72497253 {
7250
- vScale = 0.01;
7254
+ //vScale = 0.01;
72517255 }
72527256 LA.matCopy(startMat, toParent);
72537257 /**/
....@@ -7258,17 +7262,24 @@
72587262 }
72597263 /**/
72607264
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
+
72617272 switch (info.pane.RenderCamera().viewCode)
72627273 {
72637274 case 3: // '\001'
72647275 if (modified)
72657276 {
72667277 //LA.matScale(toParent, 1, hScale, vScale);
7267
- LA.matScale(toParent, vScale, 1, 1);
7278
+ LA.matScale(toParent, totalScale, 1, 1);
72687279 } // vScale, 1);
72697280 else
72707281 {
7271
- LA.matScale(toParent, vScale, vScale, vScale);
7282
+ LA.matScale(toParent, totalScale, totalScale, totalScale);
72727283 } // vScale, 1);
72737284 break;
72747285
....@@ -7276,10 +7287,10 @@
72767287 if (modified)
72777288 {
72787289 //LA.matScale(toParent, hScale, 1, vScale);
7279
- LA.matScale(toParent, 1, vScale, 1);
7290
+ LA.matScale(toParent, 1, totalScale, 1);
72807291 } else
72817292 {
7282
- LA.matScale(toParent, vScale, 1, vScale);
7293
+ LA.matScale(toParent, totalScale, 1, totalScale);
72837294 }
72847295 break;
72857296
....@@ -7287,10 +7298,10 @@
72877298 if (modified)
72887299 {
72897300 //LA.matScale(toParent, hScale, vScale, 1);
7290
- LA.matScale(toParent, 1, 1, vScale);
7301
+ LA.matScale(toParent, 1, 1, totalScale);
72917302 } else
72927303 {
7293
- LA.matScale(toParent, vScale, vScale, 1);
7304
+ LA.matScale(toParent, totalScale, totalScale, 1);
72947305 }
72957306 break;
72967307 }
....@@ -7431,7 +7442,7 @@
74317442 objname = name + " " + System.identityHashCode(this) + " (" + parent.name + " " + System.identityHashCode(parent) + ")";
74327443 } else
74337444 {
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) ":"") */ "";
74357446 } // + super.toString();
74367447 //return name + " (" + (SizeOf.deepSizeOf(this)/1024) + "K) " + this.getClass().getName();
74377448
....@@ -7679,9 +7690,9 @@
76797690 private static cVector edge2 = new cVector();
76807691 //private static cVector norm = new cVector();
76817692 /*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;
76857696 /*transient*/ /*private*/ int viewCode; // Now used for transparency cache flag
76867697 /*transient*/ private Point centerPt;
76877698 /*transient*/ private int startX;