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,18 +302,18 @@
292302 //normalLensItem.addActionListener(this);
293303 cameraMenu.add(revertCameraItem = new MenuItem("Revert Camera"));
294304 revertCameraItem.addActionListener(this);
305
+ cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline"));
306
+ toggleTimelineItem.addItemListener(this);
295307 cameraMenu.add(toggleFullScreenItem = new CheckboxMenuItem("Full Screen"));
296308 toggleFullScreenItem.addItemListener(this);
297309 toggleFullScreenItem.setState(CameraPane.FULLSCREEN);
298
- cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline"));
299
- toggleTimelineItem.addItemListener(this);
300310 cameraMenu.add("-");
301311 cameraMenu.add(toggleTextureItem = new CheckboxMenuItem("Texture"));
302312 toggleTextureItem.addItemListener(this);
303313 toggleTextureItem.setState(CameraPane.textureon);
304314 cameraMenu.add(toggleLiveItem = new CheckboxMenuItem("Live"));
305315 toggleLiveItem.addItemListener(this);
306
- toggleLiveItem.setState(CameraPane.isLIVE());
316
+ toggleLiveItem.setState(Globals.isLIVE());
307317 cameraMenu.add(stepItem = new MenuItem("Step"));
308318 stepItem.addActionListener(this);
309319 // cameraMenu.add(toggleDLItem = new CheckboxMenuItem("Display List"));
....@@ -596,6 +606,22 @@
596606 }
597607 }
598608
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
+
599625 private JTextArea createTextPane()
600626 {
601627 String[] initString =
....@@ -796,7 +822,7 @@
796822
797823 aConstraints.fill = GridBagConstraints.VERTICAL;
798824 jlabel.setHorizontalAlignment(SwingConstants.TRAILING);
799
- aConstraints.gridwidth = 2;
825
+ aConstraints.gridwidth = 1;
800826 ctrlPanel.add(jlabel, aConstraints); //, oe.ctrlPanel.getComponentCount()-1);
801827 aConstraints.gridx += 1;
802828 aConstraints.fill = GridBagConstraints.HORIZONTAL;
....@@ -965,6 +991,9 @@
965991
966992 Return();
967993
994
+ normalpushField = AddSlider(oe.ctrlPanel, "Push", -10, 10, 0, -1);
995
+ Return();
996
+
968997 // oe.ctrlPanel.add(stepButton = new cButton("Step"), ObjEditor.aConstraints, oe.ctrlPanel.getComponentCount() - 2);
969998 // ObjEditor.aConstraints.gridx += 1;
970999
....@@ -1160,10 +1189,18 @@
11601189 //JPanel worldPanel =
11611190 // new gov.nasa.worldwind.examples.ApplicationTemplate.AppPanel(null, true);
11621191 //worldPanel.setName("World");
1163
- centralPanel = new JPanel(new BorderLayout());
1192
+ centralPanel = new cGridBag();
1193
+ centralPanel.preferredWidth = 20;
11641194 timelinePanel = new JPanel(new BorderLayout());
11651195 timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel);
11661196
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
+
11671204 centralPanel.add(cameraView);
11681205 //frame.setJMenuBar(timelineMenubar);
11691206 //centralPanel.add(timelinePanel);
....@@ -1183,12 +1220,13 @@
11831220 //frontView.object = copy;
11841221 //sideView.object = copy;
11851222
1186
- XYZPanel = new JPanel();
1187
- XYZPanel.setLayout(new GridLayout(3, 1, 5, 5));
1223
+ XYZPanel = new cGridBag().setVertical(true);
1224
+ //XYZPanel.setLayout(new GridLayout(3, 1, 5, 5));
11881225
1189
- XYZPanel.add(/*BorderLayout.SOUTH,*/sideView); // Scroll);
1190
- XYZPanel.add(/*BorderLayout.CENTER,*/frontView); // Scroll);
1191
- 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);
11921230
11931231 /*
11941232 gridPanel = new JPanel(); //new BorderLayout());
....@@ -1250,16 +1288,23 @@
12501288 scrollpane.setWheelScrollingEnabled(true);
12511289 scrollpane.addMouseWheelListener(this); // Default not fast enough
12521290
1253
- /*JTabbedPane*/ scenePanel = new JTabbedPane();
1254
- scenePanel.add(scrollpane);
1291
+ /*JTabbedPane*/ scenePanel = new cGridBag();
1292
+ scenePanel.preferredWidth = 7;
1293
+
1294
+ JTabbedPane tabbedPane = new JTabbedPane();
1295
+ tabbedPane.add(scrollpane);
12551296
1256
- scenePanel.add(FSPane = new cFileSystemPane(this));
1297
+ tabbedPane.add(FSPane = new cFileSystemPane(this));
12571298
12581299 optionsPanel = new JPanel(new GridBagLayout());
12591300
12601301 optionsPanel.setName("Options");
1261
- scenePanel.add(optionsPanel);
1262
-
1302
+
1303
+ AddOptions(optionsPanel, aConstraints);
1304
+
1305
+ tabbedPane.add(optionsPanel);
1306
+
1307
+ scenePanel.add(tabbedPane);
12631308
12641309 /*
12651310 cTree jTree = new cTree(null);
....@@ -1293,6 +1338,7 @@
12931338 //bigPanel.setSize(new Dimension(10,10));
12941339 //bigPanel.add(ctrlPanel);
12951340 //bigPanel.add(gridPanel);
1341
+ /**
12961342 bigThree = new JPanel();
12971343 //big.setLayout(new FlowLayout(FlowLayout.LEFT));
12981344 bigThree.setLayout(new GridBagLayout()); //1,3,5,5));
....@@ -1316,7 +1362,13 @@
13161362 // aConstraints.gridheight = 3;
13171363 aWindowConstraints.fill = GridBagConstraints.VERTICAL;
13181364 bigThree.add(XYZPanel, aWindowConstraints);
1365
+ /**/
13191366
1367
+ bigThree = new cGridBag();
1368
+ bigThree.addComponent(scenePanel);
1369
+ bigThree.addComponent(centralPanel);
1370
+ bigThree.addComponent(XYZPanel);
1371
+
13201372 // // SIDE EFFECT!!!
13211373 // aConstraints.gridx = 0;
13221374 // aConstraints.gridy = 0;
....@@ -1337,7 +1389,8 @@
13371389 //worldPane.add(bigPanel);
13381390 //worldPane.add(worldPanel);
13391391 /**/
1340
- frame.getContentPane().add(/*"Center",*/framePanel);
1392
+ //frame.getContentPane().add(/*"Center",*/framePanel);
1393
+ frame.add(/*"Center",*/framePanel);
13411394 //frame.getContentPane().add(/*"Center",*/ worldPane);
13421395
13431396 // aConstraints = gbc; // (GridBagConstraints) GrafreeD.clone(gbc);
....@@ -1358,6 +1411,10 @@
13581411 });
13591412 }
13601413
1414
+ void AddOptions(JPanel panel, GridBagConstraints constraints)
1415
+ {
1416
+ }
1417
+
13611418 JTree GetTree()
13621419 {
13631420 return objEditor.jTree;
....@@ -1428,7 +1485,7 @@
14281485 aConstraints.gridx += 1;
14291486 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
14301487 //aConstraints.weightx = 0;
1431
- ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1488
+ ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14321489 aConstraints.gridx = 0;
14331490 aConstraints.gridy += 1;
14341491 aConstraints.gridwidth = 1;
....@@ -1438,7 +1495,7 @@
14381495 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14391496 aConstraints.gridx += 1;
14401497 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1441
- ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1498
+ ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14421499 aConstraints.gridx = 0;
14431500 aConstraints.gridy += 1;
14441501 aConstraints.gridwidth = 1;
....@@ -1448,7 +1505,7 @@
14481505 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14491506 aConstraints.gridx += 1;
14501507 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1451
- ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1508
+ ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14521509 aConstraints.gridx = 0;
14531510 aConstraints.gridy += 1;
14541511 aConstraints.gridwidth = 1;
....@@ -1458,7 +1515,7 @@
14581515 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14591516 aConstraints.gridx += 1;
14601517 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1461
- ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1518
+ ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14621519 aConstraints.gridx = 0;
14631520 aConstraints.gridy += 1;
14641521 aConstraints.gridwidth = 1;
....@@ -1468,7 +1525,7 @@
14681525 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14691526 aConstraints.gridx += 1;
14701527 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1471
- ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1528
+ ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14721529 aConstraints.gridx = 0;
14731530 aConstraints.gridy += 1;
14741531 aConstraints.gridwidth = 1;
....@@ -1537,7 +1594,7 @@
15371594 aConstraints.fill = GridBagConstraints.HORIZONTAL;
15381595 aConstraints.gridx += 1;
15391596 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1540
- ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1597
+ ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.5), aConstraints);
15411598 aConstraints.gridx = 0;
15421599 aConstraints.gridy += 1;
15431600 aConstraints.gridwidth = 1;
....@@ -1606,7 +1663,7 @@
16061663 aConstraints.fill = GridBagConstraints.HORIZONTAL;
16071664 aConstraints.gridx += 1;
16081665 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1609
- ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1666
+ ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.5), aConstraints);
16101667 aConstraints.gridx = 0;
16111668 aConstraints.gridy += 1;
16121669 aConstraints.gridwidth = 1;
....@@ -1677,7 +1734,7 @@
16771734 aConstraints.fill = GridBagConstraints.HORIZONTAL;
16781735 aConstraints.gridx += 1;
16791736 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1680
- ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1737
+ ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.5), aConstraints);
16811738 aConstraints.gridx = 0;
16821739 aConstraints.gridy += 1;
16831740 aConstraints.gridwidth = 1;
....@@ -2966,37 +3023,35 @@
29663023 return;
29673024 } else if (event.getSource() == toggleTimelineItem)
29683025 {
2969
- copy.timeline ^= true;
3026
+ timeline ^= true;
29703027
2971
- if (copy.timeline)
3028
+ if (timeline)
29723029 {
29733030 centralPanel.remove(cameraView);
2974
- centralPanel.add(timelinePanel);
3031
+ cameraPanel.add(cameraView);
3032
+ centralPanel.add(cameraPanel);
29753033 frame.setJMenuBar(timelineMenubar);
3034
+ wasFullScreen = CameraPane.FULLSCREEN;
3035
+ if (!CameraPane.FULLSCREEN)
3036
+ ToggleFullScreen();
3037
+ toggleFullScreenItem.setEnabled(false);
29763038 }
29773039 else
29783040 {
2979
- centralPanel.remove(timelinePanel);
3041
+ centralPanel.remove(cameraPanel);
29803042 centralPanel.add(cameraView);
29813043 frame.setJMenuBar(null);
3044
+ if (!wasFullScreen)
3045
+ ToggleFullScreen();
3046
+ toggleFullScreenItem.setEnabled(true);
29823047 }
29833048
29843049 frame.validate();
29853050 return;
29863051 } else if (event.getSource() == toggleFullScreenItem)
29873052 {
2988
- if (CameraPane.FULLSCREEN)
2989
- {
2990
- frame.getContentPane().remove(/*"Center",*/bigThree);
2991
- framePanel.add(bigThree);
2992
- frame.getContentPane().add(/*"Center",*/framePanel);
2993
- } else
2994
- {
2995
- frame.getContentPane().remove(/*"Center",*/framePanel);
2996
- frame.getContentPane().add(/*"Center",*/bigThree);
2997
- }
3053
+ ToggleFullScreen();
29983054 frame.validate();
2999
- cameraView.ToggleFullScreen();
30003055
30013056 return;
30023057 } else if (event.getSource() == toggleRandomItem)
....@@ -3106,7 +3161,8 @@
31063161 objEditor.refreshContents();
31073162 } else if (event.getSource() == stepItem)
31083163 {
3109
- cameraView.ONESTEP = true;
3164
+ //cameraView.ONESTEP = true;
3165
+ Globals.ONESTEP = true;
31103166 cameraView.repaint();
31113167 return;
31123168 } else if (event.getSource() == stepButton)
....@@ -3263,25 +3319,25 @@
32633319
32643320 void ToggleAnimation()
32653321 {
3266
- if (!CameraPane.ANIMATION)
3322
+ if (!Globals.ANIMATION)
32673323 {
32683324 FileDialog browser = new FileDialog(frame, "Save Animation As...", FileDialog.SAVE);
32693325 browser.show();
32703326 String filename = browser.getFile();
32713327 if (filename != null && filename.length() > 0)
32723328 {
3273
- CameraPane.filename = browser.getDirectory() + filename;
3329
+ Globals.filename = browser.getDirectory() + filename;
32743330 //CameraPane.framecount = 0;
3275
- CameraPane.imagecount = 0;
3331
+ Globals.imagecount = 0;
32763332
3277
- CameraPane.ANIMATION ^= true;
3333
+ Globals.ANIMATION ^= true;
32783334
32793335 GrafreeD.wav.cursor = 0;
32803336 GrafreeD.wav.loop = 0;
32813337 }
32823338 } else
32833339 {
3284
- CameraPane.ANIMATION ^= true;
3340
+ Globals.ANIMATION ^= true;
32853341 }
32863342 }
32873343
....@@ -3534,7 +3590,13 @@
35343590 //System.out.println("PARENT = " + parent);
35353591 //if (parent != null)
35363592 // parent.applySelf();
3537
- refreshContents();
3593
+ if (e.getSource() == normalpushField)
3594
+ {
3595
+ objEditor.refreshContents();
3596
+ //Refresh();
3597
+ }
3598
+ else
3599
+ refreshContents();
35383600 // ??? client.refreshEditWindow();
35393601 }
35403602 //else
....@@ -3546,7 +3608,7 @@
35463608 //group.name = nameField.getText();
35473609 //objEditor.applySelf();
35483610
3549
- assert (objEditor == this);
3611
+ // OCT2018: assert (objEditor == this);
35503612 if (copy.selection == null || copy.selection.size() == 0)
35513613 //super.applySelf()
35523614 ; else
....@@ -3570,12 +3632,18 @@
35703632 objEditor.copy = keep;
35713633 }
35723634 }
3635
+
3636
+ if (normalpushField != null)
3637
+ copy.NORMALPUSH = (float)normalpushField.getFloat()/1000;
35733638 }
35743639
35753640 void SnapObject()
35763641 {
3577
- Object3D obj = (Object3D)copy.selection.elementAt(0);
3578
- SnapObject(obj);
3642
+ if (copy.selection.size() > 0)
3643
+ {
3644
+ Object3D obj = (Object3D)copy.selection.elementAt(0);
3645
+ SnapObject(obj);
3646
+ }
35793647 }
35803648
35813649 void SnapObject(Object3D obj)
....@@ -4493,12 +4561,13 @@
44934561 JScrollPane infoPanel;
44944562 JPanel optionsPanel;
44954563 JTabbedPane objectPanel;
4496
- JPanel XYZPanel;
4564
+ cGridBag XYZPanel;
44974565 JSplitPane gridPanel;
44984566 JSplitPane bigPanel;
4499
- JPanel bigThree;
4500
- JTabbedPane scenePanel;
4501
- JPanel centralPanel;
4567
+ cGridBag bigThree;
4568
+ cGridBag scenePanel;
4569
+ cGridBag centralPanel;
4570
+ JSplitPane cameraPanel;
45024571 JPanel timelinePanel;
45034572 JMenuBar timelineMenubar;
45044573 JSplitPane framePanel;
....@@ -4611,4 +4680,6 @@
46114680 NumberSlider opacityPowerField;
46124681 JTree jTree;
46134682 //ObjectUI parent;
4683
+
4684
+ NumberSlider normalpushField;
46144685 }