Normand Briere
2019-04-28 f1c718cce66e5651a0dae91375db6ebfaded1a92
ObjEditor.java
....@@ -28,7 +28,12 @@
2828 iSendInfo
2929 //KeyListener
3030 {
31
+ boolean timeline;
32
+ boolean wasFullScreen;
3133
34
+ GroupEditor callee;
35
+ JFrame frame;
36
+
3237 // SCRIPT
3338
3439 transient JFrame textpanel = null;
....@@ -119,14 +124,13 @@
119124 void keyPressed(int key, int modifiers)
120125 {
121126 System.out.println("KEY PRESSED");
122
- CameraPane.theRenderer.keyPressed(key, modifiers);
127
+ Globals.theRenderer.keyPressed(key, modifiers);
123128 }
124129 */
125130
126131 static GridBagConstraints aConstraints;
127132 static GridBagConstraints aWindowConstraints;
128
- GroupEditor callee;
129
- JFrame frame;
133
+
130134 static int GRIDWIDTH = 100; // 4;
131135
132136 public void closeUI()
....@@ -158,12 +162,16 @@
158162 objEditor.ctrlPanel.remove(slowerButton);
159163 objEditor.ctrlPanel.remove(fasterButton);
160164 objEditor.ctrlPanel.remove(remarkButton);
165
+
166
+ Remove(normalpushField);
161167 }
162168
163169 public ObjEditor GetEditor()
164170 {
165171 return objEditor; //.GetEditor();
166172 }
173
+
174
+ // Sometimes myself, sometimes my callee's.
167175 ObjEditor objEditor;
168176
169177 /*
....@@ -238,7 +246,7 @@
238246 //if (!isDisplayable())
239247 //setUndecorated(true);
240248
241
- System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow());
249
+ //System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow());
242250 client = inClient;
243251 copy = localCopy;
244252 copy.editWindow = this;
....@@ -292,16 +300,18 @@
292300 //normalLensItem.addActionListener(this);
293301 cameraMenu.add(revertCameraItem = new MenuItem("Revert Camera"));
294302 revertCameraItem.addActionListener(this);
295
- cameraMenu.add(toggleFullItem = new CheckboxMenuItem("Full Screen"));
296
- toggleFullItem.addItemListener(this);
297
- toggleFullItem.setState(CameraPane.FULLSCREEN);
303
+ cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline"));
304
+ toggleTimelineItem.addItemListener(this);
305
+ cameraMenu.add(toggleFullScreenItem = new CheckboxMenuItem("Full Screen"));
306
+ toggleFullScreenItem.addItemListener(this);
307
+ toggleFullScreenItem.setState(CameraPane.FULLSCREEN);
298308 cameraMenu.add("-");
299309 cameraMenu.add(toggleTextureItem = new CheckboxMenuItem("Texture"));
300310 toggleTextureItem.addItemListener(this);
301311 toggleTextureItem.setState(CameraPane.textureon);
302312 cameraMenu.add(toggleLiveItem = new CheckboxMenuItem("Live"));
303313 toggleLiveItem.addItemListener(this);
304
- toggleLiveItem.setState(CameraPane.isLIVE());
314
+ toggleLiveItem.setState(Globals.isLIVE());
305315 cameraMenu.add(stepItem = new MenuItem("Step"));
306316 stepItem.addActionListener(this);
307317 // cameraMenu.add(toggleDLItem = new CheckboxMenuItem("Display List"));
....@@ -594,6 +604,22 @@
594604 }
595605 }
596606
607
+ void ToggleFullScreen()
608
+ {
609
+ if (CameraPane.FULLSCREEN)
610
+ {
611
+ frame.getContentPane().remove(/*"Center",*/bigThree);
612
+ framePanel.add(bigThree);
613
+ frame.getContentPane().add(/*"Center",*/framePanel);
614
+ } else
615
+ {
616
+ frame.getContentPane().remove(/*"Center",*/framePanel);
617
+ framePanel.remove(bigThree);
618
+ frame.getContentPane().add(/*"Center",*/bigThree);
619
+ }
620
+ cameraView.ToggleFullScreen();
621
+ }
622
+
597623 private JTextArea createTextPane()
598624 {
599625 String[] initString =
....@@ -794,7 +820,7 @@
794820
795821 aConstraints.fill = GridBagConstraints.VERTICAL;
796822 jlabel.setHorizontalAlignment(SwingConstants.TRAILING);
797
- aConstraints.gridwidth = 2;
823
+ aConstraints.gridwidth = 1;
798824 ctrlPanel.add(jlabel, aConstraints); //, oe.ctrlPanel.getComponentCount()-1);
799825 aConstraints.gridx += 1;
800826 aConstraints.fill = GridBagConstraints.HORIZONTAL;
....@@ -963,6 +989,9 @@
963989
964990 Return();
965991
992
+ normalpushField = AddSlider(oe.ctrlPanel, "Push", -10, 10, 0, -1);
993
+ Return();
994
+
966995 // oe.ctrlPanel.add(stepButton = new cButton("Step"), ObjEditor.aConstraints, oe.ctrlPanel.getComponentCount() - 2);
967996 // ObjEditor.aConstraints.gridx += 1;
968997
....@@ -1158,10 +1187,21 @@
11581187 //JPanel worldPanel =
11591188 // new gov.nasa.worldwind.examples.ApplicationTemplate.AppPanel(null, true);
11601189 //worldPanel.setName("World");
1161
- /*JPanel*/ cameraPanel =
1162
- new JPanel(new BorderLayout());
1163
- cameraPanel.add(cameraView);
1190
+ centralPanel = new JPanel(new BorderLayout());
1191
+ timelinePanel = new JPanel(new BorderLayout());
1192
+ timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel);
11641193
1194
+ cameraPanel = new JSplitPane(JSplitPane.VERTICAL_SPLIT, cameraView, timelinePanel);
1195
+ cameraPanel.setContinuousLayout(true);
1196
+ cameraPanel.setOneTouchExpandable(true);
1197
+// cameraPanel.setDividerLocation(0.9);
1198
+// cameraPanel.setDividerSize(9);
1199
+ cameraPanel.setResizeWeight(1.0);
1200
+
1201
+ centralPanel.add(cameraView);
1202
+ //frame.setJMenuBar(timelineMenubar);
1203
+ //centralPanel.add(timelinePanel);
1204
+
11651205 //topView.camera = ;
11661206 //frontView.camera = new Camera(2);
11671207 //sideView.camera = new Camera(3);
....@@ -1191,7 +1231,7 @@
11911231 gridPanel.add(cameraView);
11921232 gridPanel.add(XYZPanel);
11931233 */
1194
- gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, cameraPanel, XYZPanel); //new BorderLayout());
1234
+ gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, centralPanel, XYZPanel); //new BorderLayout());
11951235 gridPanel.setContinuousLayout(true);
11961236 gridPanel.setOneTouchExpandable(true);
11971237 gridPanel.setDividerLocation(1.0);
....@@ -1244,15 +1284,15 @@
12441284 scrollpane.setWheelScrollingEnabled(true);
12451285 scrollpane.addMouseWheelListener(this); // Default not fast enough
12461286
1247
- /*JTabbedPane*/ jtp = new JTabbedPane();
1248
- jtp.add(scrollpane);
1287
+ /*JTabbedPane*/ scenePanel = new JTabbedPane();
1288
+ scenePanel.add(scrollpane);
12491289
1250
- jtp.add(FSPane = new cFileSystemPane(this));
1290
+ scenePanel.add(FSPane = new cFileSystemPane(this));
12511291
12521292 optionsPanel = new JPanel(new GridBagLayout());
12531293
12541294 optionsPanel.setName("Options");
1255
- jtp.add(optionsPanel);
1295
+ scenePanel.add(optionsPanel);
12561296
12571297
12581298 /*
....@@ -1275,7 +1315,7 @@
12751315 jtp.add(tree);
12761316 */
12771317
1278
- bigPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jtp, gridPanel);
1318
+ bigPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scenePanel, gridPanel);
12791319 bigPanel.setContinuousLayout(true);
12801320 bigPanel.setOneTouchExpandable(true);
12811321 bigPanel.setDividerLocation(0.8);
....@@ -1297,13 +1337,13 @@
12971337 aWindowConstraints.fill = GridBagConstraints.VERTICAL;
12981338 aWindowConstraints.weightx = 0;
12991339 aWindowConstraints.weighty = 1;
1300
- bigThree.add(jtp, aWindowConstraints);
1340
+ bigThree.add(scenePanel, aWindowConstraints);
13011341 aWindowConstraints.weightx = 1;
13021342 aWindowConstraints.gridwidth = 3;
13031343 // aConstraints.gridheight = 3;
13041344 aWindowConstraints.gridx = 1;
13051345 aWindowConstraints.fill = GridBagConstraints.BOTH;
1306
- bigThree.add(cameraPanel, aWindowConstraints);
1346
+ bigThree.add(centralPanel, aWindowConstraints);
13071347 aWindowConstraints.weightx = 0;
13081348 aWindowConstraints.gridx = 4;
13091349 aWindowConstraints.gridwidth = 1;
....@@ -1331,7 +1371,8 @@
13311371 //worldPane.add(bigPanel);
13321372 //worldPane.add(worldPanel);
13331373 /**/
1334
- frame.getContentPane().add(/*"Center",*/framePanel);
1374
+ //frame.getContentPane().add(/*"Center",*/framePanel);
1375
+ frame.add(/*"Center",*/framePanel);
13351376 //frame.getContentPane().add(/*"Center",*/ worldPane);
13361377
13371378 // aConstraints = gbc; // (GridBagConstraints) GrafreeD.clone(gbc);
....@@ -1422,7 +1463,7 @@
14221463 aConstraints.gridx += 1;
14231464 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
14241465 //aConstraints.weightx = 0;
1425
- ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1466
+ ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14261467 aConstraints.gridx = 0;
14271468 aConstraints.gridy += 1;
14281469 aConstraints.gridwidth = 1;
....@@ -1432,7 +1473,7 @@
14321473 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14331474 aConstraints.gridx += 1;
14341475 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1435
- ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1476
+ ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14361477 aConstraints.gridx = 0;
14371478 aConstraints.gridy += 1;
14381479 aConstraints.gridwidth = 1;
....@@ -1442,7 +1483,7 @@
14421483 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14431484 aConstraints.gridx += 1;
14441485 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1445
- ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1486
+ ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14461487 aConstraints.gridx = 0;
14471488 aConstraints.gridy += 1;
14481489 aConstraints.gridwidth = 1;
....@@ -1452,7 +1493,7 @@
14521493 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14531494 aConstraints.gridx += 1;
14541495 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1455
- ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1496
+ ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14561497 aConstraints.gridx = 0;
14571498 aConstraints.gridy += 1;
14581499 aConstraints.gridwidth = 1;
....@@ -1462,7 +1503,7 @@
14621503 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14631504 aConstraints.gridx += 1;
14641505 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1465
- ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1506
+ ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14661507 aConstraints.gridx = 0;
14671508 aConstraints.gridy += 1;
14681509 aConstraints.gridwidth = 1;
....@@ -1531,7 +1572,7 @@
15311572 aConstraints.fill = GridBagConstraints.HORIZONTAL;
15321573 aConstraints.gridx += 1;
15331574 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1534
- ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1575
+ ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.5), aConstraints);
15351576 aConstraints.gridx = 0;
15361577 aConstraints.gridy += 1;
15371578 aConstraints.gridwidth = 1;
....@@ -1600,7 +1641,7 @@
16001641 aConstraints.fill = GridBagConstraints.HORIZONTAL;
16011642 aConstraints.gridx += 1;
16021643 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1603
- ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1644
+ ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.5), aConstraints);
16041645 aConstraints.gridx = 0;
16051646 aConstraints.gridy += 1;
16061647 aConstraints.gridwidth = 1;
....@@ -1671,7 +1712,7 @@
16711712 aConstraints.fill = GridBagConstraints.HORIZONTAL;
16721713 aConstraints.gridx += 1;
16731714 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1674
- ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1715
+ ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.5), aConstraints);
16751716 aConstraints.gridx = 0;
16761717 aConstraints.gridy += 1;
16771718 aConstraints.gridwidth = 1;
....@@ -2958,20 +2999,37 @@
29582999 // june 2013 copy.HardTouch();
29593000 cameraView.repaint();
29603001 return;
2961
- } else if (event.getSource() == toggleFullItem)
3002
+ } else if (event.getSource() == toggleTimelineItem)
29623003 {
2963
- if (CameraPane.FULLSCREEN)
3004
+ timeline ^= true;
3005
+
3006
+ if (timeline)
29643007 {
2965
- frame.getContentPane().remove(/*"Center",*/bigThree);
2966
- framePanel.add(bigThree);
2967
- frame.getContentPane().add(/*"Center",*/framePanel);
2968
- } else
2969
- {
2970
- frame.getContentPane().remove(/*"Center",*/framePanel);
2971
- frame.getContentPane().add(/*"Center",*/bigThree);
3008
+ centralPanel.remove(cameraView);
3009
+ cameraPanel.add(cameraView);
3010
+ centralPanel.add(cameraPanel);
3011
+ frame.setJMenuBar(timelineMenubar);
3012
+ wasFullScreen = CameraPane.FULLSCREEN;
3013
+ if (!CameraPane.FULLSCREEN)
3014
+ ToggleFullScreen();
3015
+ toggleFullScreenItem.setEnabled(false);
29723016 }
3017
+ else
3018
+ {
3019
+ centralPanel.remove(cameraPanel);
3020
+ centralPanel.add(cameraView);
3021
+ frame.setJMenuBar(null);
3022
+ if (!wasFullScreen)
3023
+ ToggleFullScreen();
3024
+ toggleFullScreenItem.setEnabled(true);
3025
+ }
3026
+
29733027 frame.validate();
2974
- cameraView.ToggleFullScreen();
3028
+ return;
3029
+ } else if (event.getSource() == toggleFullScreenItem)
3030
+ {
3031
+ ToggleFullScreen();
3032
+ frame.validate();
29753033
29763034 return;
29773035 } else if (event.getSource() == toggleRandomItem)
....@@ -3081,7 +3139,8 @@
30813139 objEditor.refreshContents();
30823140 } else if (event.getSource() == stepItem)
30833141 {
3084
- cameraView.ONESTEP = true;
3142
+ //cameraView.ONESTEP = true;
3143
+ Globals.ONESTEP = true;
30853144 cameraView.repaint();
30863145 return;
30873146 } else if (event.getSource() == stepButton)
....@@ -3220,9 +3279,9 @@
32203279 cameraView.RevertCamera();
32213280 cameraView.repaint();
32223281 return;
3223
- } else if (event.getSource() == textureButton)
3224
- {
3225
- return; // true;
3282
+// } else if (event.getSource() == textureButton)
3283
+// {
3284
+// return; // true;
32263285 } else // combos...
32273286 if (event.getSource() == texresMenu)
32283287 {
....@@ -3238,25 +3297,25 @@
32383297
32393298 void ToggleAnimation()
32403299 {
3241
- if (!CameraPane.ANIMATION)
3300
+ if (!Globals.ANIMATION)
32423301 {
32433302 FileDialog browser = new FileDialog(frame, "Save Animation As...", FileDialog.SAVE);
32443303 browser.show();
32453304 String filename = browser.getFile();
32463305 if (filename != null && filename.length() > 0)
32473306 {
3248
- CameraPane.filename = browser.getDirectory() + filename;
3307
+ Globals.filename = browser.getDirectory() + filename;
32493308 //CameraPane.framecount = 0;
3250
- CameraPane.imagecount = 0;
3309
+ Globals.imagecount = 0;
32513310
3252
- CameraPane.ANIMATION ^= true;
3311
+ Globals.ANIMATION ^= true;
32533312
32543313 GrafreeD.wav.cursor = 0;
32553314 GrafreeD.wav.loop = 0;
32563315 }
32573316 } else
32583317 {
3259
- CameraPane.ANIMATION ^= true;
3318
+ Globals.ANIMATION ^= true;
32603319 }
32613320 }
32623321
....@@ -3509,7 +3568,13 @@
35093568 //System.out.println("PARENT = " + parent);
35103569 //if (parent != null)
35113570 // parent.applySelf();
3512
- refreshContents();
3571
+ if (e.getSource() == normalpushField)
3572
+ {
3573
+ objEditor.refreshContents();
3574
+ //Refresh();
3575
+ }
3576
+ else
3577
+ refreshContents();
35133578 // ??? client.refreshEditWindow();
35143579 }
35153580 //else
....@@ -3521,7 +3586,7 @@
35213586 //group.name = nameField.getText();
35223587 //objEditor.applySelf();
35233588
3524
- assert (objEditor == this);
3589
+ // OCT2018: assert (objEditor == this);
35253590 if (copy.selection == null || copy.selection.size() == 0)
35263591 //super.applySelf()
35273592 ; else
....@@ -3545,12 +3610,18 @@
35453610 objEditor.copy = keep;
35463611 }
35473612 }
3613
+
3614
+ if (normalpushField != null)
3615
+ copy.NORMALPUSH = (float)normalpushField.getFloat()/1000;
35483616 }
35493617
35503618 void SnapObject()
35513619 {
3552
- Object3D obj = (Object3D)copy.selection.elementAt(0);
3553
- SnapObject(obj);
3620
+ if (copy.selection.size() > 0)
3621
+ {
3622
+ Object3D obj = (Object3D)copy.selection.elementAt(0);
3623
+ SnapObject(obj);
3624
+ }
35543625 }
35553626
35563627 void SnapObject(Object3D obj)
....@@ -4444,7 +4515,8 @@
44444515 MenuItem revertCameraItem;
44454516 CheckboxMenuItem toggleLiveItem;
44464517 MenuItem stepItem;
4447
- CheckboxMenuItem toggleFullItem;
4518
+ CheckboxMenuItem toggleFullScreenItem;
4519
+ CheckboxMenuItem toggleTimelineItem;
44484520 CheckboxMenuItem toggleRenderItem;
44494521 CheckboxMenuItem toggleDebugItem;
44504522 CheckboxMenuItem toggleFrustumItem;
....@@ -4471,11 +4543,14 @@
44714543 JSplitPane gridPanel;
44724544 JSplitPane bigPanel;
44734545 JPanel bigThree;
4474
- JTabbedPane jtp;
4475
- JPanel cameraPanel;
4546
+ JTabbedPane scenePanel;
4547
+ JPanel centralPanel;
4548
+ JSplitPane cameraPanel;
4549
+ JPanel timelinePanel;
4550
+ JMenuBar timelineMenubar;
44764551 JSplitPane framePanel;
44774552 JTextArea/*Field*/ nameField;
4478
- cButton textureButton;
4553
+ //cButton textureButton;
44794554 cButton okButton;
44804555 cButton applyButton;
44814556 cButton cancelButton;
....@@ -4583,4 +4658,6 @@
45834658 NumberSlider opacityPowerField;
45844659 JTree jTree;
45854660 //ObjectUI parent;
4661
+
4662
+ NumberSlider normalpushField;
45864663 }