From f23e09019d161b02d566ffe312fdc553459fb954 Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Sun, 28 Apr 2019 16:14:58 -0400
Subject: [PATCH] Grafreed 1.0.1 Option panel
---
ObjEditor.java | 7 ++
BoundaryRep.java | 12 +++
GroupEditor.java | 148 ++++++++++++++++++++++++++-----------------------
3 files changed, 96 insertions(+), 71 deletions(-)
diff --git a/BoundaryRep.java b/BoundaryRep.java
index 05b3429..14a7921 100644
--- a/BoundaryRep.java
+++ b/BoundaryRep.java
@@ -3247,12 +3247,21 @@
max = ay;
}
+ if (max == 0)
+ {
+ uvmap[i2] = 0.5f;
+ uvmap[i2+1] = 0.5f;
+ continue;
+ }
+
x /= max;
y /= max;
double angle = Math.acos(Math.abs(z*2));
double k = angle / Math.PI * 2;
+
+ assert(k >= 0);
// k == 0 => uv = 0 (center)
// k == 1 => uv = -1,1 (border)
@@ -3268,7 +3277,8 @@
t = Math.pow(t, 3);
// Interpolate between k/length2 (center) and k (border)
- k = k / length2 * (1 - t) + k * t;
+ if (length2 > 0)
+ k *= (1 - t) / length2 + t;
double u = k*x;
double v = k*y;
diff --git a/GroupEditor.java b/GroupEditor.java
index b72085f..645464c 100644
--- a/GroupEditor.java
+++ b/GroupEditor.java
@@ -434,6 +434,9 @@
oe.buttonGroup.add(dummyButton);
*/
aConstraints.gridy += 1;
+
+ //this.AddOptions(oe.toolbarPanel, oe.aConstraints);
+
oe.aConstraints.gridwidth = 1;
oe.aConstraints.gridx = 0;
@@ -442,76 +445,7 @@
liveCB.addItemListener(this);
oe.aConstraints.gridx += 1;
- oe.toolbarPanel.add(fastCB = new cCheckBox("Fast", CameraPane.FAST), oe.aConstraints);
- fastCB.setToolTipText("Fast mode");
- fastCB.addItemListener(this);
- oe.aConstraints.gridx += 1;
- oe.toolbarPanel.add(supportCB = new cCheckBox("Support", CameraPane.SUPPORT), oe.aConstraints);
- supportCB.setToolTipText("Enabled rigging");
- supportCB.addItemListener(this);
-
- // oe.aConstraints.gridx += 1;
- // oe.toolbarPanel.add(localCB = new cCheckBox("Local", CameraPane.LOCALTRANSFORM), oe.aConstraints);
- // localCB.addItemListener(this);
-
- oe.aConstraints.gridx += 1;
- oe.toolbarPanel.add(crowdCB = new cCheckBox("Crowd", Globals.CROWD), oe.aConstraints);
- crowdCB.setToolTipText("Used for crowds");
- crowdCB.addItemListener(this);
-
- oe.aConstraints.gridx += 1;
- oe.toolbarPanel.add(smoothCB = new cCheckBox("Inertia", CameraPane.INERTIA), oe.aConstraints);
- smoothCB.setToolTipText("Snapping delay");
- smoothCB.addItemListener(this);
-
- oe.aConstraints.gridx += 1;
- oe.toolbarPanel.add(slowCB = new cCheckBox("Slow", CameraPane.SLOWPOSE), oe.aConstraints);
- slowCB.setToolTipText("Smooth interpolation");
- slowCB.addItemListener(this);
- oe.aConstraints.gridx += 1;
- oe.toolbarPanel.add(boxCB = new cCheckBox("Box", CameraPane.BOXMODE), oe.aConstraints);
- boxCB.setToolTipText("Display bounding boxes");
- boxCB.addItemListener(this);
- oe.aConstraints.gridx += 1;
- oe.toolbarPanel.add(zoomBoxCB = new cCheckBox("Zoom", CameraPane.ZOOMBOXMODE), oe.aConstraints);
- zoomBoxCB.setToolTipText("Display bounding boxes when moving the wheel");
- zoomBoxCB.addItemListener(this);
-
-// oe.aConstraints.gridx += 1;
-// oe.toolbarPanel.add(speakerMocapCB = new cCheckBox("Mocap", CameraPane.SPEAKERMOCAP), oe.aConstraints);
-// speakerMocapCB.addItemListener(this);
-
- if (false)
- {
- // handled in scripts
- oe.aConstraints.gridx += 1;
- oe.toolbarPanel.add(speakerCameraCB = new cCheckBox("Cam", CameraPane.SPEAKERCAMERA), oe.aConstraints);
- speakerCameraCB.addItemListener(this);
-
- oe.aConstraints.gridx += 1;
- oe.toolbarPanel.add(speakerFocusCB = new cCheckBox("Focus", CameraPane.SPEAKERFOCUS), oe.aConstraints);
- speakerFocusCB.addItemListener(this);
-
- oe.aConstraints.gridx += 1;
- oe.toolbarPanel.add(smoothfocusCB = new cCheckBox("Smooth", CameraPane.SMOOTHFOCUS), oe.aConstraints);
- smoothfocusCB.addItemListener(this);
- }
-
-//oe.aConstraints.gridx += 1;
-//oe.toolbarPanel.add(debugCB = new cCheckBox("Debug", CameraPane.DEBUG), oe.aConstraints);
-// debugCB.addItemListener(this);
-
- oe.aConstraints.gridx += 1;
- oe.toolbarPanel.add(oeilCB = new cCheckBox("Eye", CameraPane.OEIL), oe.aConstraints);
- oeilCB.addItemListener(this);
-
- oe.aConstraints.gridx += 1;
- oe.toolbarPanel.add(lookAtCB = new cCheckBox("Target", CameraPane.LOOKAT), oe.aConstraints);
- lookAtCB.setToolTipText("Look-at target");
- lookAtCB.addItemListener(this);
-
- oe.aConstraints.gridx += 1;
- oe.toolbarPanel.add(trackCB = new cCheckBox(":", CameraPane.TRACK), oe.aConstraints);
+ oe.toolbarPanel.add(trackCB = new cCheckBox("Track", CameraPane.TRACK), oe.aConstraints);
trackCB.setToolTipText("Enable tracking");
trackCB.addItemListener(this);
@@ -669,6 +603,80 @@
radio.layout = sevenButton;
oe.toolbarPanel.add(radioPanel); //, oe.aConstraints);
}
+
+ void AddOptions(JPanel panel, GridBagConstraints constraints)
+ {
+ constraints.gridx = 0;
+ constraints.gridy = 0;
+ panel.add(fastCB = new cCheckBox("Fast", CameraPane.FAST), constraints);
+ fastCB.setToolTipText("Fast mode");
+ fastCB.addItemListener(this);
+ constraints.gridy += 1;
+ panel.add(supportCB = new cCheckBox("Support", CameraPane.SUPPORT), constraints);
+ supportCB.setToolTipText("Enabled rigging");
+ supportCB.addItemListener(this);
+
+ // constraints.gridy += 1;
+ // panel.add(localCB = new cCheckBox("Local", CameraPane.LOCALTRANSFORM), constraints);
+ // localCB.addItemListener(this);
+
+ constraints.gridy += 1;
+ panel.add(crowdCB = new cCheckBox("Crowd", Globals.CROWD), constraints);
+ crowdCB.setToolTipText("Used for crowds");
+ crowdCB.addItemListener(this);
+
+ constraints.gridy += 1;
+ panel.add(smoothCB = new cCheckBox("Inertia", CameraPane.INERTIA), constraints);
+ smoothCB.setToolTipText("Snapping delay");
+ smoothCB.addItemListener(this);
+
+ constraints.gridy += 1;
+ panel.add(slowCB = new cCheckBox("Slow", CameraPane.SLOWPOSE), constraints);
+ slowCB.setToolTipText("Smooth interpolation");
+ slowCB.addItemListener(this);
+ constraints.gridy += 1;
+ panel.add(boxCB = new cCheckBox("Box", CameraPane.BOXMODE), constraints);
+ boxCB.setToolTipText("Display bounding boxes");
+ boxCB.addItemListener(this);
+ constraints.gridy += 1;
+ panel.add(zoomBoxCB = new cCheckBox("Zoom", CameraPane.ZOOMBOXMODE), constraints);
+ zoomBoxCB.setToolTipText("Display bounding boxes when moving the wheel");
+ zoomBoxCB.addItemListener(this);
+
+// constraints.gridy += 1;
+// panel.add(speakerMocapCB = new cCheckBox("Mocap", CameraPane.SPEAKERMOCAP), constraints);
+// speakerMocapCB.addItemListener(this);
+
+ if (false)
+ {
+ // handled in scripts
+ constraints.gridy += 1;
+ panel.add(speakerCameraCB = new cCheckBox("Cam", CameraPane.SPEAKERCAMERA), constraints);
+ speakerCameraCB.addItemListener(this);
+
+ constraints.gridy += 1;
+ panel.add(speakerFocusCB = new cCheckBox("Focus", CameraPane.SPEAKERFOCUS), constraints);
+ speakerFocusCB.addItemListener(this);
+
+ constraints.gridy += 1;
+ panel.add(smoothfocusCB = new cCheckBox("Smooth", CameraPane.SMOOTHFOCUS), constraints);
+ smoothfocusCB.addItemListener(this);
+ }
+
+//constraints.gridx += 1;
+//panel.add(debugCB = new cCheckBox("Debug", CameraPane.DEBUG), constraints);
+// debugCB.addItemListener(this);
+
+ constraints.gridy += 1;
+ panel.add(oeilCB = new cCheckBox("Eye", CameraPane.OEIL), constraints);
+ oeilCB.addItemListener(this);
+
+ constraints.gridy += 1;
+ panel.add(lookAtCB = new cCheckBox("Target", CameraPane.LOOKAT), constraints);
+ lookAtCB.setToolTipText("Look-at target");
+ lookAtCB.addItemListener(this);
+
+ }
void EditObject(Object3D obj)
{
diff --git a/ObjEditor.java b/ObjEditor.java
index cad3c8b..d819144 100644
--- a/ObjEditor.java
+++ b/ObjEditor.java
@@ -1292,6 +1292,9 @@
optionsPanel = new JPanel(new GridBagLayout());
optionsPanel.setName("Options");
+
+ AddOptions(optionsPanel, aConstraints);
+
scenePanel.add(optionsPanel);
@@ -1393,6 +1396,10 @@
});
}
+ void AddOptions(JPanel panel, GridBagConstraints constraints)
+ {
+ }
+
JTree GetTree()
{
return objEditor.jTree;
--
Gitblit v1.6.2