Normand Briere
2018-12-17 86f4e9c75951153ae9825f4772633e45698cb602
ObjEditor.java
....@@ -28,6 +28,8 @@
2828 iSendInfo
2929 //KeyListener
3030 {
31
+ boolean timeline;
32
+ boolean wasFullScreen;
3133
3234 // SCRIPT
3335
....@@ -158,12 +160,16 @@
158160 objEditor.ctrlPanel.remove(slowerButton);
159161 objEditor.ctrlPanel.remove(fasterButton);
160162 objEditor.ctrlPanel.remove(remarkButton);
163
+
164
+ Remove(normalpushField);
161165 }
162166
163167 public ObjEditor GetEditor()
164168 {
165169 return objEditor; //.GetEditor();
166170 }
171
+
172
+ // Sometimes myself, sometimes my callee's.
167173 ObjEditor objEditor;
168174
169175 /*
....@@ -238,7 +244,7 @@
238244 //if (!isDisplayable())
239245 //setUndecorated(true);
240246
241
- System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow());
247
+ //System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow());
242248 client = inClient;
243249 copy = localCopy;
244250 copy.editWindow = this;
....@@ -292,9 +298,11 @@
292298 //normalLensItem.addActionListener(this);
293299 cameraMenu.add(revertCameraItem = new MenuItem("Revert Camera"));
294300 revertCameraItem.addActionListener(this);
295
- cameraMenu.add(toggleFullItem = new CheckboxMenuItem("Full Screen"));
296
- toggleFullItem.addItemListener(this);
297
- toggleFullItem.setState(CameraPane.FULLSCREEN);
301
+ cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline"));
302
+ toggleTimelineItem.addItemListener(this);
303
+ cameraMenu.add(toggleFullScreenItem = new CheckboxMenuItem("Full Screen"));
304
+ toggleFullScreenItem.addItemListener(this);
305
+ toggleFullScreenItem.setState(CameraPane.FULLSCREEN);
298306 cameraMenu.add("-");
299307 cameraMenu.add(toggleTextureItem = new CheckboxMenuItem("Texture"));
300308 toggleTextureItem.addItemListener(this);
....@@ -594,6 +602,22 @@
594602 }
595603 }
596604
605
+ void ToggleFullScreen()
606
+ {
607
+ if (CameraPane.FULLSCREEN)
608
+ {
609
+ frame.getContentPane().remove(/*"Center",*/bigThree);
610
+ framePanel.add(bigThree);
611
+ frame.getContentPane().add(/*"Center",*/framePanel);
612
+ } else
613
+ {
614
+ frame.getContentPane().remove(/*"Center",*/framePanel);
615
+ framePanel.remove(bigThree);
616
+ frame.getContentPane().add(/*"Center",*/bigThree);
617
+ }
618
+ cameraView.ToggleFullScreen();
619
+ }
620
+
597621 private JTextArea createTextPane()
598622 {
599623 String[] initString =
....@@ -794,7 +818,7 @@
794818
795819 aConstraints.fill = GridBagConstraints.VERTICAL;
796820 jlabel.setHorizontalAlignment(SwingConstants.TRAILING);
797
- aConstraints.gridwidth = 2;
821
+ aConstraints.gridwidth = 1;
798822 ctrlPanel.add(jlabel, aConstraints); //, oe.ctrlPanel.getComponentCount()-1);
799823 aConstraints.gridx += 1;
800824 aConstraints.fill = GridBagConstraints.HORIZONTAL;
....@@ -963,6 +987,9 @@
963987
964988 Return();
965989
990
+ normalpushField = AddSlider(oe.ctrlPanel, "Push", -10, 10, 0, -1);
991
+ Return();
992
+
966993 // oe.ctrlPanel.add(stepButton = new cButton("Step"), ObjEditor.aConstraints, oe.ctrlPanel.getComponentCount() - 2);
967994 // ObjEditor.aConstraints.gridx += 1;
968995
....@@ -1158,10 +1185,21 @@
11581185 //JPanel worldPanel =
11591186 // new gov.nasa.worldwind.examples.ApplicationTemplate.AppPanel(null, true);
11601187 //worldPanel.setName("World");
1161
- /*JPanel*/ cameraPanel =
1162
- new JPanel(new BorderLayout());
1163
- cameraPanel.add(cameraView);
1188
+ centralPanel = new JPanel(new BorderLayout());
1189
+ timelinePanel = new JPanel(new BorderLayout());
1190
+ timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel);
11641191
1192
+ cameraPanel = new JSplitPane(JSplitPane.VERTICAL_SPLIT, cameraView, timelinePanel);
1193
+ cameraPanel.setContinuousLayout(true);
1194
+ cameraPanel.setOneTouchExpandable(true);
1195
+// cameraPanel.setDividerLocation(0.9);
1196
+// cameraPanel.setDividerSize(9);
1197
+ cameraPanel.setResizeWeight(1.0);
1198
+
1199
+ centralPanel.add(cameraView);
1200
+ //frame.setJMenuBar(timelineMenubar);
1201
+ //centralPanel.add(timelinePanel);
1202
+
11651203 //topView.camera = ;
11661204 //frontView.camera = new Camera(2);
11671205 //sideView.camera = new Camera(3);
....@@ -1191,7 +1229,7 @@
11911229 gridPanel.add(cameraView);
11921230 gridPanel.add(XYZPanel);
11931231 */
1194
- gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, cameraPanel, XYZPanel); //new BorderLayout());
1232
+ gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, centralPanel, XYZPanel); //new BorderLayout());
11951233 gridPanel.setContinuousLayout(true);
11961234 gridPanel.setOneTouchExpandable(true);
11971235 gridPanel.setDividerLocation(1.0);
....@@ -1244,15 +1282,15 @@
12441282 scrollpane.setWheelScrollingEnabled(true);
12451283 scrollpane.addMouseWheelListener(this); // Default not fast enough
12461284
1247
- /*JTabbedPane*/ jtp = new JTabbedPane();
1248
- jtp.add(scrollpane);
1285
+ /*JTabbedPane*/ scenePanel = new JTabbedPane();
1286
+ scenePanel.add(scrollpane);
12491287
1250
- jtp.add(FSPane = new cFileSystemPane(this));
1288
+ scenePanel.add(FSPane = new cFileSystemPane(this));
12511289
12521290 optionsPanel = new JPanel(new GridBagLayout());
12531291
12541292 optionsPanel.setName("Options");
1255
- jtp.add(optionsPanel);
1293
+ scenePanel.add(optionsPanel);
12561294
12571295
12581296 /*
....@@ -1275,7 +1313,7 @@
12751313 jtp.add(tree);
12761314 */
12771315
1278
- bigPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jtp, gridPanel);
1316
+ bigPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scenePanel, gridPanel);
12791317 bigPanel.setContinuousLayout(true);
12801318 bigPanel.setOneTouchExpandable(true);
12811319 bigPanel.setDividerLocation(0.8);
....@@ -1297,13 +1335,13 @@
12971335 aWindowConstraints.fill = GridBagConstraints.VERTICAL;
12981336 aWindowConstraints.weightx = 0;
12991337 aWindowConstraints.weighty = 1;
1300
- bigThree.add(jtp, aWindowConstraints);
1338
+ bigThree.add(scenePanel, aWindowConstraints);
13011339 aWindowConstraints.weightx = 1;
13021340 aWindowConstraints.gridwidth = 3;
13031341 // aConstraints.gridheight = 3;
13041342 aWindowConstraints.gridx = 1;
13051343 aWindowConstraints.fill = GridBagConstraints.BOTH;
1306
- bigThree.add(cameraPanel, aWindowConstraints);
1344
+ bigThree.add(centralPanel, aWindowConstraints);
13071345 aWindowConstraints.weightx = 0;
13081346 aWindowConstraints.gridx = 4;
13091347 aWindowConstraints.gridwidth = 1;
....@@ -1422,7 +1460,7 @@
14221460 aConstraints.gridx += 1;
14231461 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
14241462 //aConstraints.weightx = 0;
1425
- ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1463
+ ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14261464 aConstraints.gridx = 0;
14271465 aConstraints.gridy += 1;
14281466 aConstraints.gridwidth = 1;
....@@ -1432,7 +1470,7 @@
14321470 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14331471 aConstraints.gridx += 1;
14341472 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1435
- ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1473
+ ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14361474 aConstraints.gridx = 0;
14371475 aConstraints.gridy += 1;
14381476 aConstraints.gridwidth = 1;
....@@ -1442,7 +1480,7 @@
14421480 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14431481 aConstraints.gridx += 1;
14441482 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1445
- ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1483
+ ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14461484 aConstraints.gridx = 0;
14471485 aConstraints.gridy += 1;
14481486 aConstraints.gridwidth = 1;
....@@ -1452,7 +1490,7 @@
14521490 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14531491 aConstraints.gridx += 1;
14541492 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1455
- ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1493
+ ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14561494 aConstraints.gridx = 0;
14571495 aConstraints.gridy += 1;
14581496 aConstraints.gridwidth = 1;
....@@ -1462,7 +1500,7 @@
14621500 aConstraints.fill = GridBagConstraints.HORIZONTAL;
14631501 aConstraints.gridx += 1;
14641502 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1465
- ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1503
+ ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.5), aConstraints);
14661504 aConstraints.gridx = 0;
14671505 aConstraints.gridy += 1;
14681506 aConstraints.gridwidth = 1;
....@@ -1531,7 +1569,7 @@
15311569 aConstraints.fill = GridBagConstraints.HORIZONTAL;
15321570 aConstraints.gridx += 1;
15331571 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1534
- ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1572
+ ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.5), aConstraints);
15351573 aConstraints.gridx = 0;
15361574 aConstraints.gridy += 1;
15371575 aConstraints.gridwidth = 1;
....@@ -1600,7 +1638,7 @@
16001638 aConstraints.fill = GridBagConstraints.HORIZONTAL;
16011639 aConstraints.gridx += 1;
16021640 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1603
- ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1641
+ ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.5), aConstraints);
16041642 aConstraints.gridx = 0;
16051643 aConstraints.gridy += 1;
16061644 aConstraints.gridwidth = 1;
....@@ -1671,7 +1709,7 @@
16711709 aConstraints.fill = GridBagConstraints.HORIZONTAL;
16721710 aConstraints.gridx += 1;
16731711 aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
1674
- ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.1), aConstraints);
1712
+ ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.5), aConstraints);
16751713 aConstraints.gridx = 0;
16761714 aConstraints.gridy += 1;
16771715 aConstraints.gridwidth = 1;
....@@ -2194,6 +2232,8 @@
21942232 {
21952233 Mocap sel = (Mocap) copy.selection.get(0);
21962234
2235
+ sel.SetCurrentBones(sel.frame);
2236
+
21972237 sel.fullname = fullname;
21982238
21992239 if (changename)
....@@ -2245,6 +2285,8 @@
22452285 {
22462286 Mocap sel = (Mocap) select;
22472287
2288
+ sel.SetCurrentBones(sel.frame);
2289
+
22482290 File file = new File(fullname);
22492291
22502292 // Mocap mocap = new Mocap("Mocap" + file.getName());
....@@ -2954,20 +2996,37 @@
29542996 // june 2013 copy.HardTouch();
29552997 cameraView.repaint();
29562998 return;
2957
- } else if (event.getSource() == toggleFullItem)
2999
+ } else if (event.getSource() == toggleTimelineItem)
29583000 {
2959
- if (CameraPane.FULLSCREEN)
3001
+ timeline ^= true;
3002
+
3003
+ if (timeline)
29603004 {
2961
- frame.getContentPane().remove(/*"Center",*/bigThree);
2962
- framePanel.add(bigThree);
2963
- frame.getContentPane().add(/*"Center",*/framePanel);
2964
- } else
2965
- {
2966
- frame.getContentPane().remove(/*"Center",*/framePanel);
2967
- frame.getContentPane().add(/*"Center",*/bigThree);
3005
+ centralPanel.remove(cameraView);
3006
+ cameraPanel.add(cameraView);
3007
+ centralPanel.add(cameraPanel);
3008
+ frame.setJMenuBar(timelineMenubar);
3009
+ wasFullScreen = CameraPane.FULLSCREEN;
3010
+ if (!CameraPane.FULLSCREEN)
3011
+ ToggleFullScreen();
3012
+ toggleFullScreenItem.setEnabled(false);
29683013 }
3014
+ else
3015
+ {
3016
+ centralPanel.remove(cameraPanel);
3017
+ centralPanel.add(cameraView);
3018
+ frame.setJMenuBar(null);
3019
+ if (!wasFullScreen)
3020
+ ToggleFullScreen();
3021
+ toggleFullScreenItem.setEnabled(true);
3022
+ }
3023
+
29693024 frame.validate();
2970
- cameraView.ToggleFullScreen();
3025
+ return;
3026
+ } else if (event.getSource() == toggleFullScreenItem)
3027
+ {
3028
+ ToggleFullScreen();
3029
+ frame.validate();
29713030
29723031 return;
29733032 } else if (event.getSource() == toggleRandomItem)
....@@ -3216,9 +3275,9 @@
32163275 cameraView.RevertCamera();
32173276 cameraView.repaint();
32183277 return;
3219
- } else if (event.getSource() == textureButton)
3220
- {
3221
- return; // true;
3278
+// } else if (event.getSource() == textureButton)
3279
+// {
3280
+// return; // true;
32223281 } else // combos...
32233282 if (event.getSource() == texresMenu)
32243283 {
....@@ -3505,7 +3564,13 @@
35053564 //System.out.println("PARENT = " + parent);
35063565 //if (parent != null)
35073566 // parent.applySelf();
3508
- refreshContents();
3567
+ if (e.getSource() == normalpushField)
3568
+ {
3569
+ objEditor.refreshContents();
3570
+ //Refresh();
3571
+ }
3572
+ else
3573
+ refreshContents();
35093574 // ??? client.refreshEditWindow();
35103575 }
35113576 //else
....@@ -3517,7 +3582,7 @@
35173582 //group.name = nameField.getText();
35183583 //objEditor.applySelf();
35193584
3520
- assert (objEditor == this);
3585
+ // OCT2018: assert (objEditor == this);
35213586 if (copy.selection == null || copy.selection.size() == 0)
35223587 //super.applySelf()
35233588 ; else
....@@ -3541,12 +3606,18 @@
35413606 objEditor.copy = keep;
35423607 }
35433608 }
3609
+
3610
+ if (normalpushField != null)
3611
+ copy.NORMALPUSH = (float)normalpushField.getFloat()/1000;
35443612 }
35453613
35463614 void SnapObject()
35473615 {
3548
- Object3D obj = (Object3D)copy.selection.elementAt(0);
3549
- SnapObject(obj);
3616
+ if (copy.selection.size() > 0)
3617
+ {
3618
+ Object3D obj = (Object3D)copy.selection.elementAt(0);
3619
+ SnapObject(obj);
3620
+ }
35503621 }
35513622
35523623 void SnapObject(Object3D obj)
....@@ -3660,7 +3731,7 @@
36603731
36613732 if (obj.parent != null)
36623733 {
3663
- obj.parent.TransformToWorld(interest);
3734
+// obj.parent.TransformToWorld(interest);
36643735 }
36653736
36663737 if (!CameraPane.TRACK)
....@@ -4440,7 +4511,8 @@
44404511 MenuItem revertCameraItem;
44414512 CheckboxMenuItem toggleLiveItem;
44424513 MenuItem stepItem;
4443
- CheckboxMenuItem toggleFullItem;
4514
+ CheckboxMenuItem toggleFullScreenItem;
4515
+ CheckboxMenuItem toggleTimelineItem;
44444516 CheckboxMenuItem toggleRenderItem;
44454517 CheckboxMenuItem toggleDebugItem;
44464518 CheckboxMenuItem toggleFrustumItem;
....@@ -4467,11 +4539,14 @@
44674539 JSplitPane gridPanel;
44684540 JSplitPane bigPanel;
44694541 JPanel bigThree;
4470
- JTabbedPane jtp;
4471
- JPanel cameraPanel;
4542
+ JTabbedPane scenePanel;
4543
+ JPanel centralPanel;
4544
+ JSplitPane cameraPanel;
4545
+ JPanel timelinePanel;
4546
+ JMenuBar timelineMenubar;
44724547 JSplitPane framePanel;
44734548 JTextArea/*Field*/ nameField;
4474
- cButton textureButton;
4549
+ //cButton textureButton;
44754550 cButton okButton;
44764551 cButton applyButton;
44774552 cButton cancelButton;
....@@ -4579,4 +4654,6 @@
45794654 NumberSlider opacityPowerField;
45804655 JTree jTree;
45814656 //ObjectUI parent;
4657
+
4658
+ NumberSlider normalpushField;
45824659 }