From 6ed65dcb597fb2153cef75bf1845978f1115658c Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Fri, 14 Dec 2018 22:53:55 -0500 Subject: [PATCH] Repair shadow, normal push + attractor mesh. --- ObjEditor.java | 190 +++++++++++++++++++++++++++++++++-------------- 1 files changed, 133 insertions(+), 57 deletions(-) diff --git a/ObjEditor.java b/ObjEditor.java index 1140321..f7c8293 100644 --- a/ObjEditor.java +++ b/ObjEditor.java @@ -28,6 +28,8 @@ iSendInfo //KeyListener { + boolean timeline; + boolean wasFullScreen; // SCRIPT @@ -158,12 +160,16 @@ objEditor.ctrlPanel.remove(slowerButton); objEditor.ctrlPanel.remove(fasterButton); objEditor.ctrlPanel.remove(remarkButton); + + Remove(normalpushField); } public ObjEditor GetEditor() { return objEditor; //.GetEditor(); } + + // Sometimes myself, sometimes my callee's. ObjEditor objEditor; /* @@ -238,7 +244,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 +298,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 +530,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 +601,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() { @@ -794,7 +818,7 @@ aConstraints.fill = GridBagConstraints.VERTICAL; jlabel.setHorizontalAlignment(SwingConstants.TRAILING); - aConstraints.gridwidth = 2; + aConstraints.gridwidth = 1; ctrlPanel.add(jlabel, aConstraints); //, oe.ctrlPanel.getComponentCount()-1); aConstraints.gridx += 1; aConstraints.fill = GridBagConstraints.HORIZONTAL; @@ -963,6 +987,9 @@ Return(); + normalpushField = AddSlider(oe.ctrlPanel, "Push", -10, 10, 0, -1); + Return(); + // oe.ctrlPanel.add(stepButton = new cButton("Step"), ObjEditor.aConstraints, oe.ctrlPanel.getComponentCount() - 2); // ObjEditor.aConstraints.gridx += 1; @@ -1158,10 +1185,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 +1222,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 +1275,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 +1306,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 +1328,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; @@ -1422,7 +1453,7 @@ aConstraints.gridx += 1; aConstraints.gridwidth = ObjEditor.GRIDWIDTH; //aConstraints.weightx = 0; - ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.1), aConstraints); + ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.5), aConstraints); aConstraints.gridx = 0; aConstraints.gridy += 1; aConstraints.gridwidth = 1; @@ -1432,7 +1463,7 @@ aConstraints.fill = GridBagConstraints.HORIZONTAL; aConstraints.gridx += 1; aConstraints.gridwidth = ObjEditor.GRIDWIDTH; - ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.1), aConstraints); + ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.5), aConstraints); aConstraints.gridx = 0; aConstraints.gridy += 1; aConstraints.gridwidth = 1; @@ -1442,7 +1473,7 @@ aConstraints.fill = GridBagConstraints.HORIZONTAL; aConstraints.gridx += 1; aConstraints.gridwidth = ObjEditor.GRIDWIDTH; - ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.1), aConstraints); + ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.5), aConstraints); aConstraints.gridx = 0; aConstraints.gridy += 1; aConstraints.gridwidth = 1; @@ -1452,7 +1483,7 @@ aConstraints.fill = GridBagConstraints.HORIZONTAL; aConstraints.gridx += 1; aConstraints.gridwidth = ObjEditor.GRIDWIDTH; - ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.1), aConstraints); + ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.5), aConstraints); aConstraints.gridx = 0; aConstraints.gridy += 1; aConstraints.gridwidth = 1; @@ -1462,7 +1493,7 @@ aConstraints.fill = GridBagConstraints.HORIZONTAL; aConstraints.gridx += 1; aConstraints.gridwidth = ObjEditor.GRIDWIDTH; - ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.1), aConstraints); + ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.5), aConstraints); aConstraints.gridx = 0; aConstraints.gridy += 1; aConstraints.gridwidth = 1; @@ -1531,7 +1562,7 @@ aConstraints.fill = GridBagConstraints.HORIZONTAL; aConstraints.gridx += 1; aConstraints.gridwidth = ObjEditor.GRIDWIDTH; - ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.1), aConstraints); + ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.5), aConstraints); aConstraints.gridx = 0; aConstraints.gridy += 1; aConstraints.gridwidth = 1; @@ -1600,7 +1631,7 @@ aConstraints.fill = GridBagConstraints.HORIZONTAL; aConstraints.gridx += 1; aConstraints.gridwidth = ObjEditor.GRIDWIDTH; - ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.1), aConstraints); + ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.5), aConstraints); aConstraints.gridx = 0; aConstraints.gridy += 1; aConstraints.gridwidth = 1; @@ -1671,7 +1702,7 @@ aConstraints.fill = GridBagConstraints.HORIZONTAL; aConstraints.gridx += 1; aConstraints.gridwidth = ObjEditor.GRIDWIDTH; - ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.1), aConstraints); + ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.5), aConstraints); aConstraints.gridx = 0; aConstraints.gridy += 1; aConstraints.gridwidth = 1; @@ -2194,6 +2225,8 @@ { Mocap sel = (Mocap) copy.selection.get(0); + sel.SetCurrentBones(sel.frame); + sel.fullname = fullname; if (changename) @@ -2207,14 +2240,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 +2278,8 @@ { Mocap sel = (Mocap) select; + sel.SetCurrentBones(sel.frame); + File file = new File(fullname); // Mocap mocap = new Mocap("Mocap" + file.getName()); @@ -2307,7 +2346,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 +2989,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 +3267,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) { @@ -3497,7 +3556,13 @@ //System.out.println("PARENT = " + parent); //if (parent != null) // parent.applySelf(); - refreshContents(); + if (e.getSource() == normalpushField) + { + objEditor.refreshContents(); + //Refresh(); + } + else + refreshContents(); // ??? client.refreshEditWindow(); } //else @@ -3509,7 +3574,7 @@ //group.name = nameField.getText(); //objEditor.applySelf(); - assert (objEditor == this); + // OCT2018: assert (objEditor == this); if (copy.selection == null || copy.selection.size() == 0) //super.applySelf() ; else @@ -3533,12 +3598,18 @@ objEditor.copy = keep; } } + + if (normalpushField != null) + copy.NORMALPUSH = (float)normalpushField.getFloat()/1000; } 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 +3723,7 @@ if (obj.parent != null) { - obj.parent.TransformToWorld(interest); +// obj.parent.TransformToWorld(interest); } if (!CameraPane.TRACK) @@ -4432,7 +4503,8 @@ MenuItem revertCameraItem; CheckboxMenuItem toggleLiveItem; MenuItem stepItem; - CheckboxMenuItem toggleFullItem; + CheckboxMenuItem toggleFullScreenItem; + CheckboxMenuItem toggleTimelineItem; CheckboxMenuItem toggleRenderItem; CheckboxMenuItem toggleDebugItem; CheckboxMenuItem toggleFrustumItem; @@ -4459,11 +4531,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; @@ -4571,4 +4645,6 @@ NumberSlider opacityPowerField; JTree jTree; //ObjectUI parent; + + NumberSlider normalpushField; } -- Gitblit v1.6.2