Normand Briere
2018-07-08 f4160780a4d8278920b99ada1050f320d6e30a73
ObjEditor.java
....@@ -292,9 +292,11 @@
292292 //normalLensItem.addActionListener(this);
293293 cameraMenu.add(revertCameraItem = new MenuItem("Revert Camera"));
294294 revertCameraItem.addActionListener(this);
295
- cameraMenu.add(toggleFullItem = new CheckboxMenuItem("Full Screen"));
296
- toggleFullItem.addItemListener(this);
297
- toggleFullItem.setState(CameraPane.FULLSCREEN);
295
+ cameraMenu.add(toggleFullScreenItem = new CheckboxMenuItem("Full Screen"));
296
+ toggleFullScreenItem.addItemListener(this);
297
+ toggleFullScreenItem.setState(CameraPane.FULLSCREEN);
298
+ cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline"));
299
+ toggleTimelineItem.addItemListener(this);
298300 cameraMenu.add("-");
299301 cameraMenu.add(toggleTextureItem = new CheckboxMenuItem("Texture"));
300302 toggleTextureItem.addItemListener(this);
....@@ -522,18 +524,18 @@
522524 maxima.y = sel.toParent[3][1];
523525 maxima.z = sel.toParent[3][2];
524526 si.SendInfo(" Orig: " + maxima, "regular");
525
- maxima.x = sel.globalTransform[3][0];
526
- maxima.y = sel.globalTransform[3][1];
527
- maxima.z = sel.globalTransform[3][2];
528
- if (full)
529
- si.SendInfo(" Global Orig: " + maxima, "regular");
530527 maxima.x = sel.toParent[0][0];
531528 maxima.y = sel.toParent[1][1];
532529 maxima.z = sel.toParent[2][2];
533530 si.SendInfo(" Scale: " + maxima, "regular");
534
- maxima.x = sel.globalTransform[0][0];
535
- maxima.y = sel.globalTransform[1][1];
536
- maxima.z = sel.globalTransform[2][2];
531
+ maxima.x = sel.globalTransform[3][0];
532
+ maxima.y = sel.globalTransform[3][1];
533
+ maxima.z = sel.globalTransform[3][2];
534
+ if (full)
535
+ si.SendInfo(" Global Orig: " + maxima, "regular");
536
+ maxima.x = sel.globalTransform[0][0];
537
+ maxima.y = sel.globalTransform[1][1];
538
+ maxima.z = sel.globalTransform[2][2];
537539 if (full)
538540 si.SendInfo(" Global Scale: " + maxima, "regular");
539541 }
....@@ -1158,10 +1160,14 @@
11581160 //JPanel worldPanel =
11591161 // new gov.nasa.worldwind.examples.ApplicationTemplate.AppPanel(null, true);
11601162 //worldPanel.setName("World");
1161
- /*JPanel*/ cameraPanel =
1162
- new JPanel(new BorderLayout());
1163
- cameraPanel.add(cameraView);
1163
+ centralPanel = new JPanel(new BorderLayout());
1164
+ timelinePanel = new JPanel(new BorderLayout());
1165
+ timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel);
11641166
1167
+ centralPanel.add(cameraView);
1168
+ //frame.setJMenuBar(timelineMenubar);
1169
+ //centralPanel.add(timelinePanel);
1170
+
11651171 //topView.camera = ;
11661172 //frontView.camera = new Camera(2);
11671173 //sideView.camera = new Camera(3);
....@@ -1191,7 +1197,7 @@
11911197 gridPanel.add(cameraView);
11921198 gridPanel.add(XYZPanel);
11931199 */
1194
- gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, cameraPanel, XYZPanel); //new BorderLayout());
1200
+ gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, centralPanel, XYZPanel); //new BorderLayout());
11951201 gridPanel.setContinuousLayout(true);
11961202 gridPanel.setOneTouchExpandable(true);
11971203 gridPanel.setDividerLocation(1.0);
....@@ -1244,15 +1250,15 @@
12441250 scrollpane.setWheelScrollingEnabled(true);
12451251 scrollpane.addMouseWheelListener(this); // Default not fast enough
12461252
1247
- /*JTabbedPane*/ jtp = new JTabbedPane();
1248
- jtp.add(scrollpane);
1253
+ /*JTabbedPane*/ scenePanel = new JTabbedPane();
1254
+ scenePanel.add(scrollpane);
12491255
1250
- jtp.add(FSPane = new cFileSystemPane(this));
1256
+ scenePanel.add(FSPane = new cFileSystemPane(this));
12511257
12521258 optionsPanel = new JPanel(new GridBagLayout());
12531259
12541260 optionsPanel.setName("Options");
1255
- jtp.add(optionsPanel);
1261
+ scenePanel.add(optionsPanel);
12561262
12571263
12581264 /*
....@@ -1275,7 +1281,7 @@
12751281 jtp.add(tree);
12761282 */
12771283
1278
- bigPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jtp, gridPanel);
1284
+ bigPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scenePanel, gridPanel);
12791285 bigPanel.setContinuousLayout(true);
12801286 bigPanel.setOneTouchExpandable(true);
12811287 bigPanel.setDividerLocation(0.8);
....@@ -1297,13 +1303,13 @@
12971303 aWindowConstraints.fill = GridBagConstraints.VERTICAL;
12981304 aWindowConstraints.weightx = 0;
12991305 aWindowConstraints.weighty = 1;
1300
- bigThree.add(jtp, aWindowConstraints);
1306
+ bigThree.add(scenePanel, aWindowConstraints);
13011307 aWindowConstraints.weightx = 1;
13021308 aWindowConstraints.gridwidth = 3;
13031309 // aConstraints.gridheight = 3;
13041310 aWindowConstraints.gridx = 1;
13051311 aWindowConstraints.fill = GridBagConstraints.BOTH;
1306
- bigThree.add(cameraPanel, aWindowConstraints);
1312
+ bigThree.add(centralPanel, aWindowConstraints);
13071313 aWindowConstraints.weightx = 0;
13081314 aWindowConstraints.gridx = 4;
13091315 aWindowConstraints.gridwidth = 1;
....@@ -1859,19 +1865,21 @@
18591865 }
18601866
18611867 // Images/textures
1862
- if (textures
1863
- && (filename.toLowerCase().endsWith(".jpg")
1864
- || filename.toLowerCase().endsWith(".jpeg")
1865
- || filename.toLowerCase().endsWith(".gif")
1866
- || filename.toLowerCase().endsWith(".png")
1867
- || filename.toLowerCase().endsWith(".tre")
1868
- || filename.toLowerCase().endsWith(".bmp")
1869
- || filename.toLowerCase().endsWith(".tga")
1870
- || filename.toLowerCase().endsWith(".sgi")
1871
- || filename.toLowerCase().endsWith(".tif")
1872
- || filename.toLowerCase().endsWith(".tiff")))
1868
+ if (filename.toLowerCase().endsWith(".jpg")
1869
+ || filename.toLowerCase().endsWith(".jpeg")
1870
+ || filename.toLowerCase().endsWith(".gif")
1871
+ || filename.toLowerCase().endsWith(".png")
1872
+ || filename.toLowerCase().endsWith(".tre")
1873
+ || filename.toLowerCase().endsWith(".bmp")
1874
+ || filename.toLowerCase().endsWith(".tga")
1875
+ || filename.toLowerCase().endsWith(".sgi")
1876
+ || filename.toLowerCase().endsWith(".tif")
1877
+ || filename.toLowerCase().endsWith(".tiff"))
18731878 {
1874
- DropTexture(filename);
1879
+ if (textures)
1880
+ DropTexture(filename);
1881
+ else
1882
+ CreateBillboard(filename);
18751883 continue;
18761884 }
18771885
....@@ -1880,6 +1888,60 @@
18801888 }
18811889
18821890 ResetModel();
1891
+ }
1892
+
1893
+ void CreateBillboard(String filename)
1894
+ {
1895
+ Object3D source = null;
1896
+ Object3D group = copy;
1897
+
1898
+ if (group.selection.size() > 0)
1899
+ {
1900
+ source = group.selection.get(0);
1901
+ }
1902
+
1903
+ Grid grid = new Grid(1,1);
1904
+ grid.material = null;
1905
+
1906
+ grid.toParent = LA.newMatrix();
1907
+ grid.fromParent = LA.newMatrix();
1908
+ LA.matYRotate(grid.toParent, Math.PI/2);
1909
+ LA.matXRotate(grid.toParent, -Math.PI/2);
1910
+ LA.matXRotate(grid.fromParent, Math.PI/2);
1911
+ LA.matYRotate(grid.fromParent, -Math.PI/2);
1912
+
1913
+ BillboardNode bb = new BillboardNode();
1914
+ bb.addChild(grid);
1915
+
1916
+ Object3D newgroup = new Object3D();
1917
+ newgroup.CreateMaterial();
1918
+
1919
+ File file = new File(filename);
1920
+ newgroup.name = file.getName();
1921
+ newgroup.addChild(bb);
1922
+
1923
+ Object3D main = newgroup;
1924
+
1925
+ main.SetPigmentTexture(filename);
1926
+
1927
+ if (source != null)
1928
+ {
1929
+ main.material = new cMaterial(source.material);
1930
+ if (main.projectedVertices.length < source.projectedVertices.length)
1931
+ {
1932
+ main.projectedVertices = new Object3D.cVector2[source.projectedVertices.length];
1933
+ }
1934
+
1935
+ for (int i=0; i<source.projectedVertices.length; i++)
1936
+ {
1937
+ main.projectedVertices[i].x = source.projectedVertices[i].x;
1938
+ main.projectedVertices[i].y = source.projectedVertices[i].y;
1939
+ }
1940
+
1941
+ main.texres = source.texres;
1942
+ }
1943
+
1944
+ makeSomething(newgroup, false);
18831945 }
18841946
18851947 Point location;
....@@ -2138,6 +2200,8 @@
21382200 {
21392201 Mocap sel = (Mocap) copy.selection.get(0);
21402202
2203
+ sel.SetCurrentBones(sel.frame);
2204
+
21412205 sel.fullname = fullname;
21422206
21432207 if (changename)
....@@ -2151,14 +2215,18 @@
21512215 sel.smoothed = false;
21522216
21532217 // if (!changename)
2154
- sel.SetPositionDelta(false, true, true, true/*?*/); // false
2218
+ //sel.SetPositionDelta(false, true, true, true/*?*/); // false
2219
+ sel.SetGlobalTransform();
2220
+ sel.LoadData();
2221
+ sel.Rewind();
2222
+ sel.Fade();
21552223 // sel.setPose(0);
21562224 refreshContents();
21572225 } else
21582226 {
21592227 mocap.Reset();
21602228 // new skeleton
2161
- makeSomething(mocap, false); // true);
2229
+ makeSomething(mocap, true); // true);
21622230 }
21632231 } catch (Exception e)
21642232 {
....@@ -2185,6 +2253,8 @@
21852253 {
21862254 Mocap sel = (Mocap) select;
21872255
2256
+ sel.SetCurrentBones(sel.frame);
2257
+
21882258 File file = new File(fullname);
21892259
21902260 // Mocap mocap = new Mocap("Mocap" + file.getName());
....@@ -2251,7 +2321,11 @@
22512321
22522322 if (!changename)
22532323 {
2254
- sel.SetPositionDelta(false, true, true, true/*?*/);
2324
+ //sel.SetPositionDelta(false, true, true, true/*?*/);
2325
+ sel.SetGlobalTransform();
2326
+ sel.LoadData();
2327
+ sel.Rewind();
2328
+ sel.Fade();
22552329 }
22562330
22572331 // sel.setPose(0);
....@@ -2890,7 +2964,26 @@
28902964 // june 2013 copy.HardTouch();
28912965 cameraView.repaint();
28922966 return;
2893
- } else if (event.getSource() == toggleFullItem)
2967
+ } else if (event.getSource() == toggleTimelineItem)
2968
+ {
2969
+ copy.timeline ^= true;
2970
+
2971
+ if (copy.timeline)
2972
+ {
2973
+ centralPanel.remove(cameraView);
2974
+ centralPanel.add(timelinePanel);
2975
+ frame.setJMenuBar(timelineMenubar);
2976
+ }
2977
+ else
2978
+ {
2979
+ centralPanel.remove(timelinePanel);
2980
+ centralPanel.add(cameraView);
2981
+ frame.setJMenuBar(null);
2982
+ }
2983
+
2984
+ frame.validate();
2985
+ return;
2986
+ } else if (event.getSource() == toggleFullScreenItem)
28942987 {
28952988 if (CameraPane.FULLSCREEN)
28962989 {
....@@ -3152,9 +3245,9 @@
31523245 cameraView.RevertCamera();
31533246 cameraView.repaint();
31543247 return;
3155
- } else if (event.getSource() == textureButton)
3156
- {
3157
- return; // true;
3248
+// } else if (event.getSource() == textureButton)
3249
+// {
3250
+// return; // true;
31583251 } else // combos...
31593252 if (event.getSource() == texresMenu)
31603253 {
....@@ -3596,7 +3689,7 @@
35963689
35973690 if (obj.parent != null)
35983691 {
3599
- obj.parent.TransformToWorld(interest);
3692
+// obj.parent.TransformToWorld(interest);
36003693 }
36013694
36023695 if (!CameraPane.TRACK)
....@@ -4376,7 +4469,8 @@
43764469 MenuItem revertCameraItem;
43774470 CheckboxMenuItem toggleLiveItem;
43784471 MenuItem stepItem;
4379
- CheckboxMenuItem toggleFullItem;
4472
+ CheckboxMenuItem toggleFullScreenItem;
4473
+ CheckboxMenuItem toggleTimelineItem;
43804474 CheckboxMenuItem toggleRenderItem;
43814475 CheckboxMenuItem toggleDebugItem;
43824476 CheckboxMenuItem toggleFrustumItem;
....@@ -4403,11 +4497,13 @@
44034497 JSplitPane gridPanel;
44044498 JSplitPane bigPanel;
44054499 JPanel bigThree;
4406
- JTabbedPane jtp;
4407
- JPanel cameraPanel;
4500
+ JTabbedPane scenePanel;
4501
+ JPanel centralPanel;
4502
+ JPanel timelinePanel;
4503
+ JMenuBar timelineMenubar;
44084504 JSplitPane framePanel;
44094505 JTextArea/*Field*/ nameField;
4410
- cButton textureButton;
4506
+ //cButton textureButton;
44114507 cButton okButton;
44124508 cButton applyButton;
44134509 cButton cancelButton;