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 | 154 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 109 insertions(+), 45 deletions(-) diff --git a/ObjEditor.java b/ObjEditor.java index a7f467c..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); @@ -594,6 +602,22 @@ } } + 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() { String[] initString = @@ -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; @@ -2958,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) @@ -3220,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) { @@ -3509,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 @@ -3521,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 @@ -3545,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) @@ -4444,7 +4503,8 @@ MenuItem revertCameraItem; CheckboxMenuItem toggleLiveItem; MenuItem stepItem; - CheckboxMenuItem toggleFullItem; + CheckboxMenuItem toggleFullScreenItem; + CheckboxMenuItem toggleTimelineItem; CheckboxMenuItem toggleRenderItem; CheckboxMenuItem toggleDebugItem; CheckboxMenuItem toggleFrustumItem; @@ -4471,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; @@ -4583,4 +4645,6 @@ NumberSlider opacityPowerField; JTree jTree; //ObjectUI parent; + + NumberSlider normalpushField; } -- Gitblit v1.6.2