Normand Briere
2019-04-29 c0c300a9dbd4c0fc127e003e9481d3f9246bbe7a
ObjEditor.java
....@@ -19,6 +19,8 @@
1919 import //weka.core.
2020 matrix.Matrix;
2121
22
+import grafeme.ui.*;
23
+
2224 class ObjEditor /*extends JFrame*/ implements iCallBack, ObjectUI,
2325 ActionListener, ChangeListener,
2426 InputMethodListener,
....@@ -28,7 +30,12 @@
2830 iSendInfo
2931 //KeyListener
3032 {
33
+ boolean timeline;
34
+ boolean wasFullScreen;
3135
36
+ GroupEditor callee;
37
+ JFrame frame;
38
+
3239 // SCRIPT
3340
3441 transient JFrame textpanel = null;
....@@ -119,14 +126,13 @@
119126 void keyPressed(int key, int modifiers)
120127 {
121128 System.out.println("KEY PRESSED");
122
- CameraPane.theRenderer.keyPressed(key, modifiers);
129
+ Globals.theRenderer.keyPressed(key, modifiers);
123130 }
124131 */
125132
126133 static GridBagConstraints aConstraints;
127134 static GridBagConstraints aWindowConstraints;
128
- GroupEditor callee;
129
- JFrame frame;
135
+
130136 static int GRIDWIDTH = 100; // 4;
131137
132138 public void closeUI()
....@@ -158,12 +164,16 @@
158164 objEditor.ctrlPanel.remove(slowerButton);
159165 objEditor.ctrlPanel.remove(fasterButton);
160166 objEditor.ctrlPanel.remove(remarkButton);
167
+
168
+ Remove(normalpushField);
161169 }
162170
163171 public ObjEditor GetEditor()
164172 {
165173 return objEditor; //.GetEditor();
166174 }
175
+
176
+ // Sometimes myself, sometimes my callee's.
167177 ObjEditor objEditor;
168178
169179 /*
....@@ -238,7 +248,7 @@
238248 //if (!isDisplayable())
239249 //setUndecorated(true);
240250
241
- System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow());
251
+ //System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow());
242252 client = inClient;
243253 copy = localCopy;
244254 copy.editWindow = this;
....@@ -292,16 +302,18 @@
292302 //normalLensItem.addActionListener(this);
293303 cameraMenu.add(revertCameraItem = new MenuItem("Revert Camera"));
294304 revertCameraItem.addActionListener(this);
295
- cameraMenu.add(toggleFullItem = new CheckboxMenuItem("Full Screen"));
296
- toggleFullItem.addItemListener(this);
297
- toggleFullItem.setState(CameraPane.FULLSCREEN);
305
+ cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline"));
306
+ toggleTimelineItem.addItemListener(this);
307
+ cameraMenu.add(toggleFullScreenItem = new CheckboxMenuItem("Full Screen"));
308
+ toggleFullScreenItem.addItemListener(this);
309
+ toggleFullScreenItem.setState(CameraPane.FULLSCREEN);
298310 cameraMenu.add("-");
299311 cameraMenu.add(toggleTextureItem = new CheckboxMenuItem("Texture"));
300312 toggleTextureItem.addItemListener(this);
301313 toggleTextureItem.setState(CameraPane.textureon);
302314 cameraMenu.add(toggleLiveItem = new CheckboxMenuItem("Live"));
303315 toggleLiveItem.addItemListener(this);
304
- toggleLiveItem.setState(CameraPane.isLIVE());
316
+ toggleLiveItem.setState(Globals.isLIVE());
305317 cameraMenu.add(stepItem = new MenuItem("Step"));
306318 stepItem.addActionListener(this);
307319 // cameraMenu.add(toggleDLItem = new CheckboxMenuItem("Display List"));
....@@ -594,6 +606,22 @@
594606 }
595607 }
596608
609
+ void ToggleFullScreen()
610
+ {
611
+ if (CameraPane.FULLSCREEN)
612
+ {
613
+ frame.getContentPane().remove(/*"Center",*/bigThree);
614
+ framePanel.add(bigThree);
615
+ frame.getContentPane().add(/*"Center",*/framePanel);
616
+ } else
617
+ {
618
+ frame.getContentPane().remove(/*"Center",*/framePanel);
619
+ framePanel.remove(bigThree);
620
+ frame.getContentPane().add(/*"Center",*/bigThree);
621
+ }
622
+ cameraView.ToggleFullScreen();
623
+ }
624
+
597625 private JTextArea createTextPane()
598626 {
599627 String[] initString =
....@@ -794,7 +822,7 @@
794822
795823 aConstraints.fill = GridBagConstraints.VERTICAL;
796824 jlabel.setHorizontalAlignment(SwingConstants.TRAILING);
797
- aConstraints.gridwidth = 2;
825
+ aConstraints.gridwidth = 1;
798826 ctrlPanel.add(jlabel, aConstraints); //, oe.ctrlPanel.getComponentCount()-1);
799827 aConstraints.gridx += 1;
800828 aConstraints.fill = GridBagConstraints.HORIZONTAL;
....@@ -963,6 +991,9 @@
963991
964992 Return();
965993
994
+ normalpushField = AddSlider(oe.ctrlPanel, "Push", -10, 10, 0, -1);
995
+ Return();
996
+
966997 // oe.ctrlPanel.add(stepButton = new cButton("Step"), ObjEditor.aConstraints, oe.ctrlPanel.getComponentCount() - 2);
967998 // ObjEditor.aConstraints.gridx += 1;
968999
....@@ -1158,11 +1189,22 @@
11581189 //JPanel worldPanel =
11591190 // new gov.nasa.worldwind.examples.ApplicationTemplate.AppPanel(null, true);
11601191 //worldPanel.setName("World");
1161
- /*JPanel*/ cameraPanel =
1162
- new JPanel(new BorderLayout());
1163
- cameraPanel.add(cameraView);
1164
- //new timeflow.app.TimeflowApp().TimeFlowWindow(cameraPanel, frame);
1192
+ centralPanel = new cGridBag();
1193
+ centralPanel.preferredWidth = 20;
1194
+ timelinePanel = new JPanel(new BorderLayout());
1195
+ timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel);
11651196
1197
+ cameraPanel = new JSplitPane(JSplitPane.VERTICAL_SPLIT, cameraView, timelinePanel);
1198
+ cameraPanel.setContinuousLayout(true);
1199
+ cameraPanel.setOneTouchExpandable(true);
1200
+// cameraPanel.setDividerLocation(0.9);
1201
+// cameraPanel.setDividerSize(9);
1202
+ cameraPanel.setResizeWeight(1.0);
1203
+
1204
+ centralPanel.add(cameraView);
1205
+ //frame.setJMenuBar(timelineMenubar);
1206
+ //centralPanel.add(timelinePanel);
1207
+
11661208 //topView.camera = ;
11671209 //frontView.camera = new Camera(2);
11681210 //sideView.camera = new Camera(3);
....@@ -1178,12 +1220,13 @@
11781220 //frontView.object = copy;
11791221 //sideView.object = copy;
11801222
1181
- XYZPanel = new JPanel();
1182
- XYZPanel.setLayout(new GridLayout(3, 1, 5, 5));
1223
+ XYZPanel = new cGridBag().setVertical(true);
1224
+ //XYZPanel.setLayout(new GridLayout(3, 1, 5, 5));
11831225
1184
- XYZPanel.add(/*BorderLayout.SOUTH,*/sideView); // Scroll);
1185
- XYZPanel.add(/*BorderLayout.CENTER,*/frontView); // Scroll);
1186
- XYZPanel.add(/*BorderLayout.NORTH,*/topView); // Scroll);
1226
+ XYZPanel.preferredWidth = 5;
1227
+ XYZPanel.addComponent(/*BorderLayout.SOUTH,*/sideView); // Scroll);
1228
+ XYZPanel.addComponent(/*BorderLayout.CENTER,*/frontView); // Scroll);
1229
+ XYZPanel.addComponent(/*BorderLayout.NORTH,*/topView); // Scroll);
11871230
11881231 /*
11891232 gridPanel = new JPanel(); //new BorderLayout());
....@@ -1192,7 +1235,7 @@
11921235 gridPanel.add(cameraView);
11931236 gridPanel.add(XYZPanel);
11941237 */
1195
- gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, cameraPanel, XYZPanel); //new BorderLayout());
1238
+ gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, centralPanel, XYZPanel); //new BorderLayout());
11961239 gridPanel.setContinuousLayout(true);
11971240 gridPanel.setOneTouchExpandable(true);
11981241 gridPanel.setDividerLocation(1.0);
....@@ -1245,16 +1288,23 @@
12451288 scrollpane.setWheelScrollingEnabled(true);
12461289 scrollpane.addMouseWheelListener(this); // Default not fast enough
12471290
1248
- /*JTabbedPane*/ scenePanel = new JTabbedPane();
1249
- scenePanel.add(scrollpane);
1291
+ /*JTabbedPane*/ scenePanel = new cGridBag();
1292
+ scenePanel.preferredWidth = 7;
1293
+
1294
+ JTabbedPane tabbedPane = new JTabbedPane();
1295
+ tabbedPane.add(scrollpane);
12501296
1251
- scenePanel.add(FSPane = new cFileSystemPane(this));
1297
+ tabbedPane.add(FSPane = new cFileSystemPane(this));
12521298
12531299 optionsPanel = new JPanel(new GridBagLayout());
12541300
12551301 optionsPanel.setName("Options");
1256
- scenePanel.add(optionsPanel);
1257
-
1302
+
1303
+ AddOptions(optionsPanel, aConstraints);
1304
+
1305
+ tabbedPane.add(optionsPanel);
1306
+
1307
+ scenePanel.add(tabbedPane);
12581308
12591309 /*
12601310 cTree jTree = new cTree(null);
....@@ -1288,6 +1338,7 @@
12881338 //bigPanel.setSize(new Dimension(10,10));
12891339 //bigPanel.add(ctrlPanel);
12901340 //bigPanel.add(gridPanel);
1341
+ /**
12911342 bigThree = new JPanel();
12921343 //big.setLayout(new FlowLayout(FlowLayout.LEFT));
12931344 bigThree.setLayout(new GridBagLayout()); //1,3,5,5));
....@@ -1304,14 +1355,20 @@
13041355 // aConstraints.gridheight = 3;
13051356 aWindowConstraints.gridx = 1;
13061357 aWindowConstraints.fill = GridBagConstraints.BOTH;
1307
- bigThree.add(cameraPanel, aWindowConstraints);
1358
+ bigThree.add(centralPanel, aWindowConstraints);
13081359 aWindowConstraints.weightx = 0;
13091360 aWindowConstraints.gridx = 4;
13101361 aWindowConstraints.gridwidth = 1;
13111362 // aConstraints.gridheight = 3;
13121363 aWindowConstraints.fill = GridBagConstraints.VERTICAL;
13131364 bigThree.add(XYZPanel, aWindowConstraints);
1365
+ /**/
13141366
1367
+ bigThree = new cGridBag();
1368
+ bigThree.addComponent(scenePanel);
1369
+ bigThree.addComponent(centralPanel);
1370
+ bigThree.addComponent(XYZPanel);
1371
+
13151372 // // SIDE EFFECT!!!
13161373 // aConstraints.gridx = 0;
13171374 // aConstraints.gridy = 0;
....@@ -1332,7 +1389,8 @@
13321389 //worldPane.add(bigPanel);
13331390 //worldPane.add(worldPanel);
13341391 /**/
1335
- frame.getContentPane().add(/*"Center",*/framePanel);
1392
+ //frame.getContentPane().add(/*"Center",*/framePanel);
1393
+ frame.add(/*"Center",*/framePanel);
13361394 //frame.getContentPane().add(/*"Center",*/ worldPane);
13371395
13381396 // aConstraints = gbc; // (GridBagConstraints) GrafreeD.clone(gbc);
....@@ -1353,6 +1411,10 @@
13531411 });
13541412 }
13551413
1414
+ void AddOptions(JPanel panel, GridBagConstraints constraints)
1415
+ {
1416
+ }
1417
+
13561418 JTree GetTree()
13571419 {
13581420 return objEditor.jTree;
....@@ -1423,7 +1485,7 @@
14231485 aConstraints.gridx += 1;
14241486 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
14251487 //aConstraints.weightx = 0;
1426
- ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1488
+ ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14271489 aConstraints.gridx = 0;
14281490 aConstraints.gridy += 1;
14291491 aConstraints.gridwidth = 1;
....@@ -1433,7 +1495,7 @@
14331495 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14341496 aConstraints.gridx += 1;
14351497 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1436
- ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1498
+ ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14371499 aConstraints.gridx = 0;
14381500 aConstraints.gridy += 1;
14391501 aConstraints.gridwidth = 1;
....@@ -1443,7 +1505,7 @@
14431505 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14441506 aConstraints.gridx += 1;
14451507 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1446
- ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1508
+ ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14471509 aConstraints.gridx = 0;
14481510 aConstraints.gridy += 1;
14491511 aConstraints.gridwidth = 1;
....@@ -1453,7 +1515,7 @@
14531515 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14541516 aConstraints.gridx += 1;
14551517 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1456
- ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1518
+ ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14571519 aConstraints.gridx = 0;
14581520 aConstraints.gridy += 1;
14591521 aConstraints.gridwidth = 1;
....@@ -1463,7 +1525,7 @@
14631525 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14641526 aConstraints.gridx += 1;
14651527 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1466
- ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1528
+ ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14671529 aConstraints.gridx = 0;
14681530 aConstraints.gridy += 1;
14691531 aConstraints.gridwidth = 1;
....@@ -1532,7 +1594,7 @@
15321594 aConstraints.fill = GridBagConstraints.HORIZONTAL;
15331595 aConstraints.gridx += 1;
15341596 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1535
- ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1597
+ ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.5), aConstraints);
15361598 aConstraints.gridx = 0;
15371599 aConstraints.gridy += 1;
15381600 aConstraints.gridwidth = 1;
....@@ -1601,7 +1663,7 @@
16011663 aConstraints.fill = GridBagConstraints.HORIZONTAL;
16021664 aConstraints.gridx += 1;
16031665 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1604
- ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1666
+ ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.5), aConstraints);
16051667 aConstraints.gridx = 0;
16061668 aConstraints.gridy += 1;
16071669 aConstraints.gridwidth = 1;
....@@ -1672,7 +1734,7 @@
16721734 aConstraints.fill = GridBagConstraints.HORIZONTAL;
16731735 aConstraints.gridx += 1;
16741736 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1675
- ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1737
+ ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.5), aConstraints);
16761738 aConstraints.gridx = 0;
16771739 aConstraints.gridy += 1;
16781740 aConstraints.gridwidth = 1;
....@@ -2959,20 +3021,37 @@
29593021 // june 2013 copy.HardTouch();
29603022 cameraView.repaint();
29613023 return;
2962
- } else if (event.getSource() == toggleFullItem)
3024
+ } else if (event.getSource() == toggleTimelineItem)
29633025 {
2964
- if (CameraPane.FULLSCREEN)
3026
+ timeline ^= true;
3027
+
3028
+ if (timeline)
29653029 {
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);
3030
+ centralPanel.remove(cameraView);
3031
+ cameraPanel.add(cameraView);
3032
+ centralPanel.add(cameraPanel);
3033
+ frame.setJMenuBar(timelineMenubar);
3034
+ wasFullScreen = CameraPane.FULLSCREEN;
3035
+ if (!CameraPane.FULLSCREEN)
3036
+ ToggleFullScreen();
3037
+ toggleFullScreenItem.setEnabled(false);
29733038 }
3039
+ else
3040
+ {
3041
+ centralPanel.remove(cameraPanel);
3042
+ centralPanel.add(cameraView);
3043
+ frame.setJMenuBar(null);
3044
+ if (!wasFullScreen)
3045
+ ToggleFullScreen();
3046
+ toggleFullScreenItem.setEnabled(true);
3047
+ }
3048
+
29743049 frame.validate();
2975
- cameraView.ToggleFullScreen();
3050
+ return;
3051
+ } else if (event.getSource() == toggleFullScreenItem)
3052
+ {
3053
+ ToggleFullScreen();
3054
+ frame.validate();
29763055
29773056 return;
29783057 } else if (event.getSource() == toggleRandomItem)
....@@ -3082,7 +3161,8 @@
30823161 objEditor.refreshContents();
30833162 } else if (event.getSource() == stepItem)
30843163 {
3085
- cameraView.ONESTEP = true;
3164
+ //cameraView.ONESTEP = true;
3165
+ Globals.ONESTEP = true;
30863166 cameraView.repaint();
30873167 return;
30883168 } else if (event.getSource() == stepButton)
....@@ -3221,9 +3301,9 @@
32213301 cameraView.RevertCamera();
32223302 cameraView.repaint();
32233303 return;
3224
- } else if (event.getSource() == textureButton)
3225
- {
3226
- return; // true;
3304
+// } else if (event.getSource() == textureButton)
3305
+// {
3306
+// return; // true;
32273307 } else // combos...
32283308 if (event.getSource() == texresMenu)
32293309 {
....@@ -3239,25 +3319,25 @@
32393319
32403320 void ToggleAnimation()
32413321 {
3242
- if (!CameraPane.ANIMATION)
3322
+ if (!Globals.ANIMATION)
32433323 {
32443324 FileDialog browser = new FileDialog(frame, "Save Animation As...", FileDialog.SAVE);
32453325 browser.show();
32463326 String filename = browser.getFile();
32473327 if (filename != null && filename.length() > 0)
32483328 {
3249
- CameraPane.filename = browser.getDirectory() + filename;
3329
+ Globals.filename = browser.getDirectory() + filename;
32503330 //CameraPane.framecount = 0;
3251
- CameraPane.imagecount = 0;
3331
+ Globals.imagecount = 0;
32523332
3253
- CameraPane.ANIMATION ^= true;
3333
+ Globals.ANIMATION ^= true;
32543334
32553335 GrafreeD.wav.cursor = 0;
32563336 GrafreeD.wav.loop = 0;
32573337 }
32583338 } else
32593339 {
3260
- CameraPane.ANIMATION ^= true;
3340
+ Globals.ANIMATION ^= true;
32613341 }
32623342 }
32633343
....@@ -3510,7 +3590,13 @@
35103590 //System.out.println("PARENT = " + parent);
35113591 //if (parent != null)
35123592 // parent.applySelf();
3513
- refreshContents();
3593
+ if (e.getSource() == normalpushField)
3594
+ {
3595
+ objEditor.refreshContents();
3596
+ //Refresh();
3597
+ }
3598
+ else
3599
+ refreshContents();
35143600 // ??? client.refreshEditWindow();
35153601 }
35163602 //else
....@@ -3522,7 +3608,7 @@
35223608 //group.name = nameField.getText();
35233609 //objEditor.applySelf();
35243610
3525
- assert (objEditor == this);
3611
+ // OCT2018: assert (objEditor == this);
35263612 if (copy.selection == null || copy.selection.size() == 0)
35273613 //super.applySelf()
35283614 ; else
....@@ -3546,12 +3632,18 @@
35463632 objEditor.copy = keep;
35473633 }
35483634 }
3635
+
3636
+ if (normalpushField != null)
3637
+ copy.NORMALPUSH = (float)normalpushField.getFloat()/1000;
35493638 }
35503639
35513640 void SnapObject()
35523641 {
3553
- Object3D obj = (Object3D)copy.selection.elementAt(0);
3554
- SnapObject(obj);
3642
+ if (copy.selection.size() > 0)
3643
+ {
3644
+ Object3D obj = (Object3D)copy.selection.elementAt(0);
3645
+ SnapObject(obj);
3646
+ }
35553647 }
35563648
35573649 void SnapObject(Object3D obj)
....@@ -4445,7 +4537,8 @@
44454537 MenuItem revertCameraItem;
44464538 CheckboxMenuItem toggleLiveItem;
44474539 MenuItem stepItem;
4448
- CheckboxMenuItem toggleFullItem;
4540
+ CheckboxMenuItem toggleFullScreenItem;
4541
+ CheckboxMenuItem toggleTimelineItem;
44494542 CheckboxMenuItem toggleRenderItem;
44504543 CheckboxMenuItem toggleDebugItem;
44514544 CheckboxMenuItem toggleFrustumItem;
....@@ -4468,15 +4561,18 @@
44684561 JScrollPane infoPanel;
44694562 JPanel optionsPanel;
44704563 JTabbedPane objectPanel;
4471
- JPanel XYZPanel;
4564
+ cGridBag XYZPanel;
44724565 JSplitPane gridPanel;
44734566 JSplitPane bigPanel;
4474
- JPanel bigThree;
4475
- JTabbedPane scenePanel;
4476
- JPanel cameraPanel;
4567
+ cGridBag bigThree;
4568
+ cGridBag scenePanel;
4569
+ cGridBag centralPanel;
4570
+ JSplitPane cameraPanel;
4571
+ JPanel timelinePanel;
4572
+ JMenuBar timelineMenubar;
44774573 JSplitPane framePanel;
44784574 JTextArea/*Field*/ nameField;
4479
- cButton textureButton;
4575
+ //cButton textureButton;
44804576 cButton okButton;
44814577 cButton applyButton;
44824578 cButton cancelButton;
....@@ -4584,4 +4680,6 @@
45844680 NumberSlider opacityPowerField;
45854681 JTree jTree;
45864682 //ObjectUI parent;
4683
+
4684
+ NumberSlider normalpushField;
45874685 }