Normand Briere
2019-04-28 f23e09019d161b02d566ffe312fdc553459fb954
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,11 +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);
1164
- //new timeflow.app.TimeflowApp().TimeFlowWindow(cameraPanel, frame);
1190
+ centralPanel = new JPanel(new BorderLayout());
1191
+ timelinePanel = new JPanel(new BorderLayout());
1192
+ timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel);
11651193
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
+
11661205 //topView.camera = ;
11671206 //frontView.camera = new Camera(2);
11681207 //sideView.camera = new Camera(3);
....@@ -1192,7 +1231,7 @@
11921231 gridPanel.add(cameraView);
11931232 gridPanel.add(XYZPanel);
11941233 */
1195
- gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, cameraPanel, XYZPanel); //new BorderLayout());
1234
+ gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, centralPanel, XYZPanel); //new BorderLayout());
11961235 gridPanel.setContinuousLayout(true);
11971236 gridPanel.setOneTouchExpandable(true);
11981237 gridPanel.setDividerLocation(1.0);
....@@ -1253,6 +1292,9 @@
12531292 optionsPanel = new JPanel(new GridBagLayout());
12541293
12551294 optionsPanel.setName("Options");
1295
+
1296
+ AddOptions(optionsPanel, aConstraints);
1297
+
12561298 scenePanel.add(optionsPanel);
12571299
12581300
....@@ -1304,7 +1346,7 @@
13041346 // aConstraints.gridheight = 3;
13051347 aWindowConstraints.gridx = 1;
13061348 aWindowConstraints.fill = GridBagConstraints.BOTH;
1307
- bigThree.add(cameraPanel, aWindowConstraints);
1349
+ bigThree.add(centralPanel, aWindowConstraints);
13081350 aWindowConstraints.weightx = 0;
13091351 aWindowConstraints.gridx = 4;
13101352 aWindowConstraints.gridwidth = 1;
....@@ -1332,7 +1374,8 @@
13321374 //worldPane.add(bigPanel);
13331375 //worldPane.add(worldPanel);
13341376 /**/
1335
- frame.getContentPane().add(/*"Center",*/framePanel);
1377
+ //frame.getContentPane().add(/*"Center",*/framePanel);
1378
+ frame.add(/*"Center",*/framePanel);
13361379 //frame.getContentPane().add(/*"Center",*/ worldPane);
13371380
13381381 // aConstraints = gbc; // (GridBagConstraints) GrafreeD.clone(gbc);
....@@ -1353,6 +1396,10 @@
13531396 });
13541397 }
13551398
1399
+ void AddOptions(JPanel panel, GridBagConstraints constraints)
1400
+ {
1401
+ }
1402
+
13561403 JTree GetTree()
13571404 {
13581405 return objEditor.jTree;
....@@ -1423,7 +1470,7 @@
14231470 aConstraints.gridx += 1;
14241471 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
14251472 //aConstraints.weightx = 0;
1426
- ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1473
+ ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14271474 aConstraints.gridx = 0;
14281475 aConstraints.gridy += 1;
14291476 aConstraints.gridwidth = 1;
....@@ -1433,7 +1480,7 @@
14331480 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14341481 aConstraints.gridx += 1;
14351482 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1436
- ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1483
+ ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14371484 aConstraints.gridx = 0;
14381485 aConstraints.gridy += 1;
14391486 aConstraints.gridwidth = 1;
....@@ -1443,7 +1490,7 @@
14431490 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14441491 aConstraints.gridx += 1;
14451492 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1446
- ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1493
+ ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14471494 aConstraints.gridx = 0;
14481495 aConstraints.gridy += 1;
14491496 aConstraints.gridwidth = 1;
....@@ -1453,7 +1500,7 @@
14531500 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14541501 aConstraints.gridx += 1;
14551502 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1456
- ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1503
+ ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14571504 aConstraints.gridx = 0;
14581505 aConstraints.gridy += 1;
14591506 aConstraints.gridwidth = 1;
....@@ -1463,7 +1510,7 @@
14631510 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14641511 aConstraints.gridx += 1;
14651512 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1466
- ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1513
+ ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14671514 aConstraints.gridx = 0;
14681515 aConstraints.gridy += 1;
14691516 aConstraints.gridwidth = 1;
....@@ -1532,7 +1579,7 @@
15321579 aConstraints.fill = GridBagConstraints.HORIZONTAL;
15331580 aConstraints.gridx += 1;
15341581 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1535
- ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1582
+ ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.5), aConstraints);
15361583 aConstraints.gridx = 0;
15371584 aConstraints.gridy += 1;
15381585 aConstraints.gridwidth = 1;
....@@ -1601,7 +1648,7 @@
16011648 aConstraints.fill = GridBagConstraints.HORIZONTAL;
16021649 aConstraints.gridx += 1;
16031650 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1604
- ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1651
+ ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.5), aConstraints);
16051652 aConstraints.gridx = 0;
16061653 aConstraints.gridy += 1;
16071654 aConstraints.gridwidth = 1;
....@@ -1672,7 +1719,7 @@
16721719 aConstraints.fill = GridBagConstraints.HORIZONTAL;
16731720 aConstraints.gridx += 1;
16741721 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1675
- ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1722
+ ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.5), aConstraints);
16761723 aConstraints.gridx = 0;
16771724 aConstraints.gridy += 1;
16781725 aConstraints.gridwidth = 1;
....@@ -2959,20 +3006,37 @@
29593006 // june 2013 copy.HardTouch();
29603007 cameraView.repaint();
29613008 return;
2962
- } else if (event.getSource() == toggleFullItem)
3009
+ } else if (event.getSource() == toggleTimelineItem)
29633010 {
2964
- if (CameraPane.FULLSCREEN)
3011
+ timeline ^= true;
3012
+
3013
+ if (timeline)
29653014 {
2966
- frame.getContentPane().remove(/*"Center",*/bigThree);
2967
- framePanel.add(bigThree);
2968
- frame.getContentPane().add(/*"Center",*/framePanel);
2969
- } else
2970
- {
2971
- frame.getContentPane().remove(/*"Center",*/framePanel);
2972
- frame.getContentPane().add(/*"Center",*/bigThree);
3015
+ centralPanel.remove(cameraView);
3016
+ cameraPanel.add(cameraView);
3017
+ centralPanel.add(cameraPanel);
3018
+ frame.setJMenuBar(timelineMenubar);
3019
+ wasFullScreen = CameraPane.FULLSCREEN;
3020
+ if (!CameraPane.FULLSCREEN)
3021
+ ToggleFullScreen();
3022
+ toggleFullScreenItem.setEnabled(false);
29733023 }
3024
+ else
3025
+ {
3026
+ centralPanel.remove(cameraPanel);
3027
+ centralPanel.add(cameraView);
3028
+ frame.setJMenuBar(null);
3029
+ if (!wasFullScreen)
3030
+ ToggleFullScreen();
3031
+ toggleFullScreenItem.setEnabled(true);
3032
+ }
3033
+
29743034 frame.validate();
2975
- cameraView.ToggleFullScreen();
3035
+ return;
3036
+ } else if (event.getSource() == toggleFullScreenItem)
3037
+ {
3038
+ ToggleFullScreen();
3039
+ frame.validate();
29763040
29773041 return;
29783042 } else if (event.getSource() == toggleRandomItem)
....@@ -3082,7 +3146,8 @@
30823146 objEditor.refreshContents();
30833147 } else if (event.getSource() == stepItem)
30843148 {
3085
- cameraView.ONESTEP = true;
3149
+ //cameraView.ONESTEP = true;
3150
+ Globals.ONESTEP = true;
30863151 cameraView.repaint();
30873152 return;
30883153 } else if (event.getSource() == stepButton)
....@@ -3221,9 +3286,9 @@
32213286 cameraView.RevertCamera();
32223287 cameraView.repaint();
32233288 return;
3224
- } else if (event.getSource() == textureButton)
3225
- {
3226
- return; // true;
3289
+// } else if (event.getSource() == textureButton)
3290
+// {
3291
+// return; // true;
32273292 } else // combos...
32283293 if (event.getSource() == texresMenu)
32293294 {
....@@ -3239,25 +3304,25 @@
32393304
32403305 void ToggleAnimation()
32413306 {
3242
- if (!CameraPane.ANIMATION)
3307
+ if (!Globals.ANIMATION)
32433308 {
32443309 FileDialog browser = new FileDialog(frame, "Save Animation As...", FileDialog.SAVE);
32453310 browser.show();
32463311 String filename = browser.getFile();
32473312 if (filename != null && filename.length() > 0)
32483313 {
3249
- CameraPane.filename = browser.getDirectory() + filename;
3314
+ Globals.filename = browser.getDirectory() + filename;
32503315 //CameraPane.framecount = 0;
3251
- CameraPane.imagecount = 0;
3316
+ Globals.imagecount = 0;
32523317
3253
- CameraPane.ANIMATION ^= true;
3318
+ Globals.ANIMATION ^= true;
32543319
32553320 GrafreeD.wav.cursor = 0;
32563321 GrafreeD.wav.loop = 0;
32573322 }
32583323 } else
32593324 {
3260
- CameraPane.ANIMATION ^= true;
3325
+ Globals.ANIMATION ^= true;
32613326 }
32623327 }
32633328
....@@ -3510,7 +3575,13 @@
35103575 //System.out.println("PARENT = " + parent);
35113576 //if (parent != null)
35123577 // parent.applySelf();
3513
- refreshContents();
3578
+ if (e.getSource() == normalpushField)
3579
+ {
3580
+ objEditor.refreshContents();
3581
+ //Refresh();
3582
+ }
3583
+ else
3584
+ refreshContents();
35143585 // ??? client.refreshEditWindow();
35153586 }
35163587 //else
....@@ -3522,7 +3593,7 @@
35223593 //group.name = nameField.getText();
35233594 //objEditor.applySelf();
35243595
3525
- assert (objEditor == this);
3596
+ // OCT2018: assert (objEditor == this);
35263597 if (copy.selection == null || copy.selection.size() == 0)
35273598 //super.applySelf()
35283599 ; else
....@@ -3546,12 +3617,18 @@
35463617 objEditor.copy = keep;
35473618 }
35483619 }
3620
+
3621
+ if (normalpushField != null)
3622
+ copy.NORMALPUSH = (float)normalpushField.getFloat()/1000;
35493623 }
35503624
35513625 void SnapObject()
35523626 {
3553
- Object3D obj = (Object3D)copy.selection.elementAt(0);
3554
- SnapObject(obj);
3627
+ if (copy.selection.size() > 0)
3628
+ {
3629
+ Object3D obj = (Object3D)copy.selection.elementAt(0);
3630
+ SnapObject(obj);
3631
+ }
35553632 }
35563633
35573634 void SnapObject(Object3D obj)
....@@ -4445,7 +4522,8 @@
44454522 MenuItem revertCameraItem;
44464523 CheckboxMenuItem toggleLiveItem;
44474524 MenuItem stepItem;
4448
- CheckboxMenuItem toggleFullItem;
4525
+ CheckboxMenuItem toggleFullScreenItem;
4526
+ CheckboxMenuItem toggleTimelineItem;
44494527 CheckboxMenuItem toggleRenderItem;
44504528 CheckboxMenuItem toggleDebugItem;
44514529 CheckboxMenuItem toggleFrustumItem;
....@@ -4473,10 +4551,13 @@
44734551 JSplitPane bigPanel;
44744552 JPanel bigThree;
44754553 JTabbedPane scenePanel;
4476
- JPanel cameraPanel;
4554
+ JPanel centralPanel;
4555
+ JSplitPane cameraPanel;
4556
+ JPanel timelinePanel;
4557
+ JMenuBar timelineMenubar;
44774558 JSplitPane framePanel;
44784559 JTextArea/*Field*/ nameField;
4479
- cButton textureButton;
4560
+ //cButton textureButton;
44804561 cButton okButton;
44814562 cButton applyButton;
44824563 cButton cancelButton;
....@@ -4584,4 +4665,6 @@
45844665 NumberSlider opacityPowerField;
45854666 JTree jTree;
45864667 //ObjectUI parent;
4668
+
4669
+ NumberSlider normalpushField;
45874670 }