From 0050edcb88bac197578ec518425c8c1e1b4e469f Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Mon, 02 Sep 2019 19:29:35 -0400 Subject: [PATCH] Scale slider --- ObjEditor.java | 26 ++++++++++++- icons/figure.png | 0 GroupEditor.java | 26 +++++++++++++ Object3D.java | 12 ++++++ icons/figure256.png | 0 5 files changed, 62 insertions(+), 2 deletions(-) diff --git a/GroupEditor.java b/GroupEditor.java index ae9ebf2..5edd0f3 100644 --- a/GroupEditor.java +++ b/GroupEditor.java @@ -1330,6 +1330,7 @@ oe.treePanel.add(versionManagerPanel); oe.treePanel.Return(); + versionSliderPane = AddSlider(oe.treePanel, "Version", 0, 0, 0); versionSlider = (cNumberSlider)versionSliderPane.getComponent(1); versionSliderPane.preferredHeight = 3; @@ -4304,6 +4305,31 @@ ResetTransform(-1); } + void ScaleSelection(int scale) + { + Object3D obj; + for (Enumeration e = group.selection.elements(); e.hasMoreElements();) + { + obj = (Object3D)e.nextElement(); + + if (obj.toParent == null) + continue; + + obj.Scale(scale); + + if (obj.parent == null) + { + System.out.println("NULL PARENT!"); + // new Exception().printStackTrace(); + } + else + TouchTransform(obj); + //obj.parent.Touch(); + } + + refreshContents(); + } + void ResetTransform(int mask) { Object3D obj; diff --git a/ObjEditor.java b/ObjEditor.java index 530b091..06f91f8 100644 --- a/ObjEditor.java +++ b/ObjEditor.java @@ -555,7 +555,7 @@ // } // } // } - cameraView.transformMode = objectTabbedPane.getSelectedIndex() == 4; + cameraView.transformMode = objectTabbedPane.getSelectedIndex() == 5; // refreshContents(false); // To refresh Info tab cameraView.repaint(); @@ -1726,6 +1726,12 @@ //XYZPanel.setName("XYZ"); transformPanel.add(resetTransformPanel); + + cGridBag scalePanel = AddSlider(transformPanel, "Scale", 1, 10, 1); + scalePanel.preferredHeight = 2; + scaleSlider = (cNumberSlider)scalePanel.getComponent(1); + transformPanel.add(scalePanel); + transformPanel.add(XYZPanel); /* @@ -1781,7 +1787,7 @@ figurePanel = new cGridBag(); figurePanel.add(new cButton("FIGURES amd POSES coming soon!")); objectTabbedPane.add(figurePanel); - objectTabbedPane.setIconAt(objectTabCount, GetIcon("icons/run.png")); + objectTabbedPane.setIconAt(objectTabCount, GetIcon("icons/figure.png")); objectTabbedPane.setToolTipTextAt(objectTabCount++, "Figures and poses"); // JPanel north = new JPanel(new BorderLayout()); @@ -5189,9 +5195,16 @@ cNumberSlider versionSlider; cNumberSlider versionField; + cNumberSlider scaleSlider; + + void ScaleSelection(int scale) + { + } + public void stateChanged(ChangeEvent e) { // assert(false); + // Main version slider if (e.getSource() == versionSlider) { if (muteSlider) @@ -5212,6 +5225,7 @@ return; } + // Version slider of edited object if (e.getSource() == versionField) { int version = versionField.getInteger(); @@ -5225,6 +5239,14 @@ return; } + if (e.getSource() == scaleSlider) + { + int scale = scaleSlider.getInteger(); + + ScaleSelection(scale); + return; + } + if (freezematerial) { return; diff --git a/Object3D.java b/Object3D.java index 87058be..88267e2 100644 --- a/Object3D.java +++ b/Object3D.java @@ -3356,6 +3356,18 @@ } } + public void Scale(int scale) + { + Object3D obj = this; + + obj.toParent[0][0] = obj.toParent[1][1] = obj.toParent[2][2] = scale; + obj.toParent[0][1] = obj.toParent[1][0] = obj.toParent[2][0] = 0; + obj.toParent[0][2] = obj.toParent[1][2] = obj.toParent[2][1] = 0; + obj.fromParent[0][0] = obj.fromParent[1][1] = obj.fromParent[2][2] = 1/scale; + obj.fromParent[0][1] = obj.fromParent[1][0] = obj.fromParent[2][0] = 0; + obj.fromParent[0][2] = obj.fromParent[1][2] = obj.fromParent[2][1] = 0; + } + public void TextureRatioTransform(int axis) { cTexture tex = GetTextures(); diff --git a/icons/figure.png b/icons/figure.png new file mode 100644 index 0000000..1e9577d --- /dev/null +++ b/icons/figure.png Binary files differ diff --git a/icons/figure256.png b/icons/figure256.png new file mode 100644 index 0000000..8345ac9 --- /dev/null +++ b/icons/figure256.png Binary files differ -- Gitblit v1.6.2