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