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