From b3ae4e889872ca0b9ca76f1d17b2f0b961226729 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Mon, 05 Aug 2019 21:48:55 -0400 Subject: [PATCH] Fix physics UI --- ParticleEditor.java | 153 ++++++++++++++++++++++++++++++++------------------ 1 files changed, 98 insertions(+), 55 deletions(-) diff --git a/ParticleEditor.java b/ParticleEditor.java index 26c73c4..31e626f 100644 --- a/ParticleEditor.java +++ b/ParticleEditor.java @@ -4,6 +4,8 @@ import javax.swing.*; import javax.swing.event.*; +import grafeme.ui.*; + class ParticleEditor extends ObjEditor implements //ItemListener, ChangeListener, ObjectUI, ActionListener { @@ -68,6 +70,8 @@ oe.aConstraints.gridwidth = 1; */ super.SetupUI2(oe); + + particlesPanel = AddSlider(oe.ctrlPanel, "Particles", 0, 1000, particlesystem.numParticles); // oe.aConstraints.gridx = 0; // oe.aConstraints.gridwidth = 1; @@ -80,32 +84,44 @@ // // frameField.setFloat(particlesystem.initialVelocity); - particlesField = AddSlider(oe.ctrlPanel, "Particles", 0, 1000, particlesystem.numParticles); //, 1); - Return(); - velocityField = AddSlider(oe.ctrlPanel, "Speed", 0, 10, particlesystem.initialVelocity, 1); - Return(); - timestepField = AddSlider(oe.ctrlPanel, "Timestep", 0.001f, 1, particlesystem.controller.timestep, 1); - Return(); - delayField = AddSlider(oe.ctrlPanel, "Delay", 0, 10, particlesystem.creationdelay, 1); - Return(); - angleminField = AddSlider(oe.ctrlPanel, "Angle min", 0, (float)Math.PI, particlesystem.minimumAngle, 1); - Return(); - anglemaxField = AddSlider(oe.ctrlPanel, "Angle max", 0, (float)Math.PI, particlesystem.maximumAngle, 1); - Return(); - sizeminField = AddSlider(oe.ctrlPanel, "Size min", 0, 10, particlesystem.minimumSize, 1); - Return(); - sizemaxField = AddSlider(oe.ctrlPanel, "Size max", 0, 10, particlesystem.maximumSize, 1); - Return(); - lifeminField = AddSlider(oe.ctrlPanel, "Life min", 0, 100, particlesystem.minimumLifeTime, 1); - Return(); - lifemaxField = AddSlider(oe.ctrlPanel, "Life max", 0, 100, particlesystem.maximumLifeTime, 1); - Return(); - densityField = AddSlider(oe.ctrlPanel, "Density", 0, 1, particlesystem.density, 1); - Return(); - gravityField = AddSlider(oe.ctrlPanel, "Gravity", 0, 1, -particlesystem.controller.gvector.y, 1); - Return(); - standbyField = AddSlider(oe.ctrlPanel, "Standby", 0, 1, particlesystem.standby, 1); - Return(); + particlesField = (cNumberSlider)particlesPanel.getComponent(1); //, 1); + oe.ctrlPanel.Return(); + speedPanel = AddSlider(oe.ctrlPanel, "Speed", 0, 10, particlesystem.initialVelocity, 1); + speedField = (cNumberSlider)speedPanel.getComponent(1); + oe.ctrlPanel.Return(); + timestepPanel = AddSlider(oe.ctrlPanel, "Timestep", 0.001f, 1, particlesystem.controller.timestep, 1); + timestepField = (cNumberSlider)timestepPanel.getComponent(1); + oe.ctrlPanel.Return(); + delayPanel = AddSlider(oe.ctrlPanel, "Delay", 0, 10, particlesystem.creationdelay, 1); + delayField = (cNumberSlider)delayPanel.getComponent(1); + oe.ctrlPanel.Return(); + angleminPanel = AddSlider(oe.ctrlPanel, "Angle min", 0, (float)Math.PI, particlesystem.minimumAngle, 1); + angleminField = (cNumberSlider)angleminPanel.getComponent(1); + oe.ctrlPanel.Return(); + anglemaxPanel = AddSlider(oe.ctrlPanel, "Angle max", 0, (float)Math.PI, particlesystem.maximumAngle, 1); + anglemaxField = (cNumberSlider)anglemaxPanel.getComponent(1); + oe.ctrlPanel.Return(); + sizeminPanel = AddSlider(oe.ctrlPanel, "Size min", 0, 10, particlesystem.minimumSize, 1); + sizeminField = (cNumberSlider)sizeminPanel.getComponent(1); + oe.ctrlPanel.Return(); + sizemaxPanel = AddSlider(oe.ctrlPanel, "Size max", 0, 10, particlesystem.maximumSize, 1); + sizemaxField = (cNumberSlider)sizemaxPanel.getComponent(1); + oe.ctrlPanel.Return(); + lifeminPanel = AddSlider(oe.ctrlPanel, "Life min", 0, 100, particlesystem.minimumLifeTime, 1); + lifeminField = (cNumberSlider)lifeminPanel.getComponent(1); + oe.ctrlPanel.Return(); + lifemaxPanel = AddSlider(oe.ctrlPanel, "Life max", 0, 100, particlesystem.maximumLifeTime, 1); + lifemaxField = (cNumberSlider)lifemaxPanel.getComponent(1); + oe.ctrlPanel.Return(); + densityPanel = AddSlider(oe.ctrlPanel, "Density", 0, 1, particlesystem.density, 1); + densityField = (cNumberSlider)densityPanel.getComponent(1); + oe.ctrlPanel.Return(); + gravityPanel = AddSlider(oe.ctrlPanel, "Gravity", 0, 1, -particlesystem.controller.gvector.y, 1); + gravityField = (cNumberSlider)gravityPanel.getComponent(1); + oe.ctrlPanel.Return(); + standbyPanel = AddSlider(oe.ctrlPanel, "Standby", 0, 1, particlesystem.standby, 1); + standbyField = (cNumberSlider)standbyPanel.getComponent(1); + oe.ctrlPanel.Return(); // oe.aConstraints.gridy += 1; // oe.aConstraints.gridx = 0; @@ -175,7 +191,7 @@ { //System.out.println("Biparam :: stateChanged"); if (e.getSource() == particlesField || - e.getSource() == velocityField || + e.getSource() == speedField || e.getSource() == delayField || e.getSource() == timestepField || e.getSource() == angleminField || @@ -202,7 +218,7 @@ { // System.out.println("Biparam :: Refresh"); new Exception().printStackTrace(); - particlesystem.initialVelocity = (float) velocityField.getFloat(); // biparam.minUDivs, 99); + particlesystem.initialVelocity = (float) speedField.getFloat(); // biparam.minUDivs, 99); particlesystem.controller.timestep = (float) timestepField.getFloat(); refreshContents(); @@ -230,7 +246,7 @@ //System.out.println("Biparam :: applySelf"); //super.applySelf(); particlesystem.numParticles = particlesField.getInteger(); // biparam.minUDivs, 99); - particlesystem.initialVelocity = (float) velocityField.getFloat(); // biparam.minUDivs, 99); + particlesystem.initialVelocity = (float) speedField.getFloat(); // biparam.minUDivs, 99); particlesystem.controller.timestep = (float) timestepField.getFloat(); particlesystem.creationdelay = (float) delayField.getFloat(); particlesystem.minimumSize = (float) sizeminField.getFloat(); @@ -251,19 +267,32 @@ public void closeUI() { - Remove(particlesField); - Remove(velocityField); - Remove(timestepField); - Remove(delayField); - Remove(sizeminField); - Remove(sizemaxField); - Remove(angleminField); - Remove(anglemaxField); - Remove(lifeminField); - Remove(lifemaxField); - Remove(densityField); - Remove(gravityField); - Remove(standbyField); +// Remove(particlesField); +// Remove(speedField); +// Remove(timestepField); +// Remove(delayField); +// Remove(sizeminField); +// Remove(sizemaxField); +// Remove(angleminField); +// Remove(anglemaxField); +// Remove(lifeminField); +// Remove(lifemaxField); +// Remove(densityField); +// Remove(gravityField); +// Remove(standbyField); + objEditor.ctrlPanel.remove(particlesPanel); + objEditor.ctrlPanel.remove(speedPanel); + objEditor.ctrlPanel.remove(timestepPanel); + objEditor.ctrlPanel.remove(delayPanel); + objEditor.ctrlPanel.remove(sizeminPanel); + objEditor.ctrlPanel.remove(sizemaxPanel); + objEditor.ctrlPanel.remove(angleminPanel); + objEditor.ctrlPanel.remove(anglemaxPanel); + objEditor.ctrlPanel.remove(lifeminPanel); + objEditor.ctrlPanel.remove(lifemaxPanel); + objEditor.ctrlPanel.remove(densityPanel); + objEditor.ctrlPanel.remove(gravityPanel); + objEditor.ctrlPanel.remove(standbyPanel); // ObjEditor oe = objEditor; @@ -289,19 +318,33 @@ ParticleSystem particlesystem; - NumberSlider particlesField; - NumberSlider velocityField; - NumberSlider timestepField; - NumberSlider delayField; - NumberSlider sizeminField; - NumberSlider sizemaxField; - NumberSlider angleminField; - NumberSlider anglemaxField; - NumberSlider lifeminField; - NumberSlider lifemaxField; - NumberSlider densityField; - NumberSlider gravityField; - NumberSlider standbyField; + cNumberSlider particlesField; + cNumberSlider speedField; + cNumberSlider timestepField; + cNumberSlider delayField; + cNumberSlider sizeminField; + cNumberSlider sizemaxField; + cNumberSlider angleminField; + cNumberSlider anglemaxField; + cNumberSlider lifeminField; + cNumberSlider lifemaxField; + cNumberSlider densityField; + cNumberSlider gravityField; + cNumberSlider standbyField; + + cGridBag particlesPanel; + cGridBag speedPanel; + cGridBag timestepPanel; + cGridBag delayPanel; + cGridBag sizeminPanel; + cGridBag sizemaxPanel; + cGridBag angleminPanel; + cGridBag anglemaxPanel; + cGridBag lifeminPanel; + cGridBag lifemaxPanel; + cGridBag densityPanel; + cGridBag gravityPanel; + cGridBag standbyPanel; ObjectUI parent; //ObjEditor objEditor; -- Gitblit v1.6.2