From d34fd9341c61d13677e029cb187d4dacff5e44ea Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Fri, 26 Oct 2018 20:31:01 -0400 Subject: [PATCH] Much better AO. --- ObjEditor.java | 150 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 104 insertions(+), 46 deletions(-) diff --git a/ObjEditor.java b/ObjEditor.java index 1140321..a0dc1a7 100644 --- a/ObjEditor.java +++ b/ObjEditor.java @@ -28,6 +28,8 @@ iSendInfo //KeyListener { + boolean timeline; + boolean wasFullScreen; // SCRIPT @@ -238,7 +240,7 @@ //if (!isDisplayable()) //setUndecorated(true); - System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow()); + //System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow()); client = inClient; copy = localCopy; copy.editWindow = this; @@ -292,9 +294,11 @@ //normalLensItem.addActionListener(this); cameraMenu.add(revertCameraItem = new MenuItem("Revert Camera")); revertCameraItem.addActionListener(this); - cameraMenu.add(toggleFullItem = new CheckboxMenuItem("Full Screen")); - toggleFullItem.addItemListener(this); - toggleFullItem.setState(CameraPane.FULLSCREEN); + cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline")); + toggleTimelineItem.addItemListener(this); + cameraMenu.add(toggleFullScreenItem = new CheckboxMenuItem("Full Screen")); + toggleFullScreenItem.addItemListener(this); + toggleFullScreenItem.setState(CameraPane.FULLSCREEN); cameraMenu.add("-"); cameraMenu.add(toggleTextureItem = new CheckboxMenuItem("Texture")); toggleTextureItem.addItemListener(this); @@ -522,18 +526,18 @@ maxima.y = sel.toParent[3][1]; maxima.z = sel.toParent[3][2]; si.SendInfo(" Orig: " + maxima, "regular"); - maxima.x = sel.globalTransform[3][0]; - maxima.y = sel.globalTransform[3][1]; - maxima.z = sel.globalTransform[3][2]; - if (full) - si.SendInfo(" Global Orig: " + maxima, "regular"); maxima.x = sel.toParent[0][0]; maxima.y = sel.toParent[1][1]; maxima.z = sel.toParent[2][2]; si.SendInfo(" Scale: " + maxima, "regular"); - maxima.x = sel.globalTransform[0][0]; - maxima.y = sel.globalTransform[1][1]; - maxima.z = sel.globalTransform[2][2]; + maxima.x = sel.globalTransform[3][0]; + maxima.y = sel.globalTransform[3][1]; + maxima.z = sel.globalTransform[3][2]; + if (full) + si.SendInfo(" Global Orig: " + maxima, "regular"); + maxima.x = sel.globalTransform[0][0]; + maxima.y = sel.globalTransform[1][1]; + maxima.z = sel.globalTransform[2][2]; if (full) si.SendInfo(" Global Scale: " + maxima, "regular"); } @@ -593,6 +597,22 @@ System.err.println("Couldn't insert initial text into text pane."); } } + + void ToggleFullScreen() + { + if (CameraPane.FULLSCREEN) + { + frame.getContentPane().remove(/*"Center",*/bigThree); + framePanel.add(bigThree); + frame.getContentPane().add(/*"Center",*/framePanel); + } else + { + frame.getContentPane().remove(/*"Center",*/framePanel); + framePanel.remove(bigThree); + frame.getContentPane().add(/*"Center",*/bigThree); + } + cameraView.ToggleFullScreen(); + } private JTextArea createTextPane() { @@ -1158,10 +1178,14 @@ //JPanel worldPanel = // new gov.nasa.worldwind.examples.ApplicationTemplate.AppPanel(null, true); //worldPanel.setName("World"); - /*JPanel*/ cameraPanel = - new JPanel(new BorderLayout()); - cameraPanel.add(cameraView); + centralPanel = new JPanel(new BorderLayout()); + timelinePanel = new JPanel(new BorderLayout()); + timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel); + centralPanel.add(cameraView); + //frame.setJMenuBar(timelineMenubar); + //centralPanel.add(timelinePanel); + //topView.camera = ; //frontView.camera = new Camera(2); //sideView.camera = new Camera(3); @@ -1191,7 +1215,7 @@ gridPanel.add(cameraView); gridPanel.add(XYZPanel); */ - gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, cameraPanel, XYZPanel); //new BorderLayout()); + gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, centralPanel, XYZPanel); //new BorderLayout()); gridPanel.setContinuousLayout(true); gridPanel.setOneTouchExpandable(true); gridPanel.setDividerLocation(1.0); @@ -1244,15 +1268,15 @@ scrollpane.setWheelScrollingEnabled(true); scrollpane.addMouseWheelListener(this); // Default not fast enough - /*JTabbedPane*/ jtp = new JTabbedPane(); - jtp.add(scrollpane); + /*JTabbedPane*/ scenePanel = new JTabbedPane(); + scenePanel.add(scrollpane); - jtp.add(FSPane = new cFileSystemPane(this)); + scenePanel.add(FSPane = new cFileSystemPane(this)); optionsPanel = new JPanel(new GridBagLayout()); optionsPanel.setName("Options"); - jtp.add(optionsPanel); + scenePanel.add(optionsPanel); /* @@ -1275,7 +1299,7 @@ jtp.add(tree); */ - bigPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jtp, gridPanel); + bigPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scenePanel, gridPanel); bigPanel.setContinuousLayout(true); bigPanel.setOneTouchExpandable(true); bigPanel.setDividerLocation(0.8); @@ -1297,13 +1321,13 @@ aWindowConstraints.fill = GridBagConstraints.VERTICAL; aWindowConstraints.weightx = 0; aWindowConstraints.weighty = 1; - bigThree.add(jtp, aWindowConstraints); + bigThree.add(scenePanel, aWindowConstraints); aWindowConstraints.weightx = 1; aWindowConstraints.gridwidth = 3; // aConstraints.gridheight = 3; aWindowConstraints.gridx = 1; aWindowConstraints.fill = GridBagConstraints.BOTH; - bigThree.add(cameraPanel, aWindowConstraints); + bigThree.add(centralPanel, aWindowConstraints); aWindowConstraints.weightx = 0; aWindowConstraints.gridx = 4; aWindowConstraints.gridwidth = 1; @@ -2194,6 +2218,8 @@ { Mocap sel = (Mocap) copy.selection.get(0); + sel.SetCurrentBones(sel.frame); + sel.fullname = fullname; if (changename) @@ -2207,14 +2233,18 @@ sel.smoothed = false; // if (!changename) - sel.SetPositionDelta(false, true, true, true/*?*/); // false + //sel.SetPositionDelta(false, true, true, true/*?*/); // false + sel.SetGlobalTransform(); + sel.LoadData(); + sel.Rewind(); + sel.Fade(); // sel.setPose(0); refreshContents(); } else { mocap.Reset(); // new skeleton - makeSomething(mocap, false); // true); + makeSomething(mocap, true); // true); } } catch (Exception e) { @@ -2241,6 +2271,8 @@ { Mocap sel = (Mocap) select; + sel.SetCurrentBones(sel.frame); + File file = new File(fullname); // Mocap mocap = new Mocap("Mocap" + file.getName()); @@ -2307,7 +2339,11 @@ if (!changename) { - sel.SetPositionDelta(false, true, true, true/*?*/); + //sel.SetPositionDelta(false, true, true, true/*?*/); + sel.SetGlobalTransform(); + sel.LoadData(); + sel.Rewind(); + sel.Fade(); } // sel.setPose(0); @@ -2946,20 +2982,36 @@ // june 2013 copy.HardTouch(); cameraView.repaint(); return; - } else if (event.getSource() == toggleFullItem) + } else if (event.getSource() == toggleTimelineItem) { - if (CameraPane.FULLSCREEN) + timeline ^= true; + + if (timeline) { - frame.getContentPane().remove(/*"Center",*/bigThree); - framePanel.add(bigThree); - frame.getContentPane().add(/*"Center",*/framePanel); - } else - { - frame.getContentPane().remove(/*"Center",*/framePanel); - frame.getContentPane().add(/*"Center",*/bigThree); + centralPanel.remove(cameraView); + centralPanel.add(timelinePanel); + frame.setJMenuBar(timelineMenubar); + wasFullScreen = CameraPane.FULLSCREEN; + if (!CameraPane.FULLSCREEN) + ToggleFullScreen(); + toggleFullScreenItem.setEnabled(false); } + else + { + centralPanel.remove(timelinePanel); + centralPanel.add(cameraView); + frame.setJMenuBar(null); + if (!wasFullScreen) + ToggleFullScreen(); + toggleFullScreenItem.setEnabled(true); + } + frame.validate(); - cameraView.ToggleFullScreen(); + return; + } else if (event.getSource() == toggleFullScreenItem) + { + ToggleFullScreen(); + frame.validate(); return; } else if (event.getSource() == toggleRandomItem) @@ -3208,9 +3260,9 @@ cameraView.RevertCamera(); cameraView.repaint(); return; - } else if (event.getSource() == textureButton) - { - return; // true; +// } else if (event.getSource() == textureButton) +// { +// return; // true; } else // combos... if (event.getSource() == texresMenu) { @@ -3537,8 +3589,11 @@ void SnapObject() { - Object3D obj = (Object3D)copy.selection.elementAt(0); - SnapObject(obj); + if (copy.selection.size() > 0) + { + Object3D obj = (Object3D)copy.selection.elementAt(0); + SnapObject(obj); + } } void SnapObject(Object3D obj) @@ -3652,7 +3707,7 @@ if (obj.parent != null) { - obj.parent.TransformToWorld(interest); +// obj.parent.TransformToWorld(interest); } if (!CameraPane.TRACK) @@ -4432,7 +4487,8 @@ MenuItem revertCameraItem; CheckboxMenuItem toggleLiveItem; MenuItem stepItem; - CheckboxMenuItem toggleFullItem; + CheckboxMenuItem toggleFullScreenItem; + CheckboxMenuItem toggleTimelineItem; CheckboxMenuItem toggleRenderItem; CheckboxMenuItem toggleDebugItem; CheckboxMenuItem toggleFrustumItem; @@ -4459,11 +4515,13 @@ JSplitPane gridPanel; JSplitPane bigPanel; JPanel bigThree; - JTabbedPane jtp; - JPanel cameraPanel; + JTabbedPane scenePanel; + JPanel centralPanel; + JPanel timelinePanel; + JMenuBar timelineMenubar; JSplitPane framePanel; JTextArea/*Field*/ nameField; - cButton textureButton; + //cButton textureButton; cButton okButton; cButton applyButton; cButton cancelButton; -- Gitblit v1.6.2