From bed42c663d286d76a32f155049f9efabc2fdb73f Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Sun, 28 Apr 2019 20:48:43 -0400 Subject: [PATCH] New UI proto --- ObjEditor.java | 255 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 180 insertions(+), 75 deletions(-) diff --git a/ObjEditor.java b/ObjEditor.java index 1140321..0ea0e59 100644 --- a/ObjEditor.java +++ b/ObjEditor.java @@ -19,6 +19,8 @@ import //weka.core. matrix.Matrix; +import grafeme.ui.*; + class ObjEditor /*extends JFrame*/ implements iCallBack, ObjectUI, ActionListener, ChangeListener, InputMethodListener, @@ -28,7 +30,12 @@ iSendInfo //KeyListener { + boolean timeline; + boolean wasFullScreen; + GroupEditor callee; + JFrame frame; + // SCRIPT transient JFrame textpanel = null; @@ -119,14 +126,13 @@ void keyPressed(int key, int modifiers) { System.out.println("KEY PRESSED"); - CameraPane.theRenderer.keyPressed(key, modifiers); + Globals.theRenderer.keyPressed(key, modifiers); } */ static GridBagConstraints aConstraints; static GridBagConstraints aWindowConstraints; - GroupEditor callee; - JFrame frame; + static int GRIDWIDTH = 100; // 4; public void closeUI() @@ -158,12 +164,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 +248,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,16 +302,18 @@ //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); toggleTextureItem.setState(CameraPane.textureon); cameraMenu.add(toggleLiveItem = new CheckboxMenuItem("Live")); toggleLiveItem.addItemListener(this); - toggleLiveItem.setState(CameraPane.isLIVE()); + toggleLiveItem.setState(Globals.isLIVE()); cameraMenu.add(stepItem = new MenuItem("Step")); stepItem.addActionListener(this); // cameraMenu.add(toggleDLItem = new CheckboxMenuItem("Display List")); @@ -522,18 +534,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 +605,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 +822,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 +991,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 +1189,21 @@ //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); + cameraPanel = new JSplitPane(JSplitPane.VERTICAL_SPLIT, cameraView, timelinePanel); + cameraPanel.setContinuousLayout(true); + cameraPanel.setOneTouchExpandable(true); +// cameraPanel.setDividerLocation(0.9); +// cameraPanel.setDividerSize(9); + cameraPanel.setResizeWeight(1.0); + + centralPanel.add(cameraView); + //frame.setJMenuBar(timelineMenubar); + //centralPanel.add(timelinePanel); + //topView.camera = ; //frontView.camera = new Camera(2); //sideView.camera = new Camera(3); @@ -1177,12 +1219,12 @@ //frontView.object = copy; //sideView.object = copy; - XYZPanel = new JPanel(); - XYZPanel.setLayout(new GridLayout(3, 1, 5, 5)); + XYZPanel = new cGridBag().setVertical(true); + //XYZPanel.setLayout(new GridLayout(3, 1, 5, 5)); - XYZPanel.add(/*BorderLayout.SOUTH,*/sideView); // Scroll); - XYZPanel.add(/*BorderLayout.CENTER,*/frontView); // Scroll); - XYZPanel.add(/*BorderLayout.NORTH,*/topView); // Scroll); + XYZPanel.addComponent(/*BorderLayout.SOUTH,*/sideView); // Scroll); + XYZPanel.addComponent(/*BorderLayout.CENTER,*/frontView); // Scroll); + XYZPanel.addComponent(/*BorderLayout.NORTH,*/topView); // Scroll); /* gridPanel = new JPanel(); //new BorderLayout()); @@ -1191,7 +1233,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 +1286,18 @@ 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); + + AddOptions(optionsPanel, aConstraints); + + scenePanel.add(optionsPanel); /* @@ -1275,7 +1320,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); @@ -1287,6 +1332,7 @@ //bigPanel.setSize(new Dimension(10,10)); //bigPanel.add(ctrlPanel); //bigPanel.add(gridPanel); + /** bigThree = new JPanel(); //big.setLayout(new FlowLayout(FlowLayout.LEFT)); bigThree.setLayout(new GridBagLayout()); //1,3,5,5)); @@ -1297,20 +1343,26 @@ 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; // aConstraints.gridheight = 3; aWindowConstraints.fill = GridBagConstraints.VERTICAL; bigThree.add(XYZPanel, aWindowConstraints); + /**/ + bigThree = new cGridBag(); + bigThree.addComponent(scenePanel); + bigThree.addComponent(centralPanel); + bigThree.addComponent(XYZPanel); + // // SIDE EFFECT!!! // aConstraints.gridx = 0; // aConstraints.gridy = 0; @@ -1331,7 +1383,8 @@ //worldPane.add(bigPanel); //worldPane.add(worldPanel); /**/ - frame.getContentPane().add(/*"Center",*/framePanel); + //frame.getContentPane().add(/*"Center",*/framePanel); + frame.add(/*"Center",*/framePanel); //frame.getContentPane().add(/*"Center",*/ worldPane); // aConstraints = gbc; // (GridBagConstraints) GrafreeD.clone(gbc); @@ -1352,6 +1405,10 @@ }); } + void AddOptions(JPanel panel, GridBagConstraints constraints) + { + } + JTree GetTree() { return objEditor.jTree; @@ -1422,7 +1479,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 +1489,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 +1499,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 +1509,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 +1519,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 +1588,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 +1657,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 +1728,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 +2251,8 @@ { Mocap sel = (Mocap) copy.selection.get(0); + sel.SetCurrentBones(sel.frame); + sel.fullname = fullname; if (changename) @@ -2207,14 +2266,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 +2304,8 @@ { Mocap sel = (Mocap) select; + sel.SetCurrentBones(sel.frame); + File file = new File(fullname); // Mocap mocap = new Mocap("Mocap" + file.getName()); @@ -2307,7 +2372,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 +3015,37 @@ // 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); + cameraPanel.add(cameraView); + centralPanel.add(cameraPanel); + frame.setJMenuBar(timelineMenubar); + wasFullScreen = CameraPane.FULLSCREEN; + if (!CameraPane.FULLSCREEN) + ToggleFullScreen(); + toggleFullScreenItem.setEnabled(false); } + else + { + centralPanel.remove(cameraPanel); + 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) @@ -3069,7 +3155,8 @@ objEditor.refreshContents(); } else if (event.getSource() == stepItem) { - cameraView.ONESTEP = true; + //cameraView.ONESTEP = true; + Globals.ONESTEP = true; cameraView.repaint(); return; } else if (event.getSource() == stepButton) @@ -3208,9 +3295,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) { @@ -3226,25 +3313,25 @@ void ToggleAnimation() { - if (!CameraPane.ANIMATION) + if (!Globals.ANIMATION) { FileDialog browser = new FileDialog(frame, "Save Animation As...", FileDialog.SAVE); browser.show(); String filename = browser.getFile(); if (filename != null && filename.length() > 0) { - CameraPane.filename = browser.getDirectory() + filename; + Globals.filename = browser.getDirectory() + filename; //CameraPane.framecount = 0; - CameraPane.imagecount = 0; + Globals.imagecount = 0; - CameraPane.ANIMATION ^= true; + Globals.ANIMATION ^= true; GrafreeD.wav.cursor = 0; GrafreeD.wav.loop = 0; } } else { - CameraPane.ANIMATION ^= true; + Globals.ANIMATION ^= true; } } @@ -3497,7 +3584,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 +3602,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 +3626,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 +3751,7 @@ if (obj.parent != null) { - obj.parent.TransformToWorld(interest); +// obj.parent.TransformToWorld(interest); } if (!CameraPane.TRACK) @@ -4432,7 +4531,8 @@ MenuItem revertCameraItem; CheckboxMenuItem toggleLiveItem; MenuItem stepItem; - CheckboxMenuItem toggleFullItem; + CheckboxMenuItem toggleFullScreenItem; + CheckboxMenuItem toggleTimelineItem; CheckboxMenuItem toggleRenderItem; CheckboxMenuItem toggleDebugItem; CheckboxMenuItem toggleFrustumItem; @@ -4455,15 +4555,18 @@ JScrollPane infoPanel; JPanel optionsPanel; JTabbedPane objectPanel; - JPanel XYZPanel; + cGridBag XYZPanel; JSplitPane gridPanel; JSplitPane bigPanel; - JPanel bigThree; - JTabbedPane jtp; - JPanel cameraPanel; + cGridBag bigThree; + JTabbedPane scenePanel; + JPanel centralPanel; + JSplitPane cameraPanel; + JPanel timelinePanel; + JMenuBar timelineMenubar; JSplitPane framePanel; JTextArea/*Field*/ nameField; - cButton textureButton; + //cButton textureButton; cButton okButton; cButton applyButton; cButton cancelButton; @@ -4571,4 +4674,6 @@ NumberSlider opacityPowerField; JTree jTree; //ObjectUI parent; + + NumberSlider normalpushField; } -- Gitblit v1.6.2