From d3d5e6f9cba20b6cecc46402a426158c85be6cec Mon Sep 17 00:00:00 2001 From: David Bernard Date: Mon, 9 Jun 2014 22:58:01 +0200 Subject: [PATCH] SDK: Scene move the code from NewGeometry into each Action --- .../nodes/actions/impl/NewGeometry.java | 112 ------------------ .../actions/impl/NewGeometryBoxAction.java | 22 +++- .../actions/impl/NewGeometryLineAction.java | 23 +++- .../actions/impl/NewGeometryQuadAction.java | 37 +++++- .../actions/impl/NewGeometrySphereAction.java | 29 ++++- 5 files changed, 107 insertions(+), 116 deletions(-) delete mode 100644 sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometry.java diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometry.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometry.java deleted file mode 100644 index 1160cda82..000000000 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometry.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) 2009-2010 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package com.jme3.gde.core.sceneexplorer.nodes.actions.impl; - -import com.jme3.asset.AssetManager; -import com.jme3.material.Material; -import com.jme3.math.ColorRGBA; -import com.jme3.math.Quaternion; -import com.jme3.scene.Geometry; -import com.jme3.scene.shape.Box; -import com.jme3.scene.shape.Line; -import com.jme3.scene.shape.Quad; -import com.jme3.scene.shape.Sphere; - -/** - * - * @author david.bernard.31 - */ -public class NewGeometry { - - public static Material material(AssetManager assetManaget, NewGeometrySettings cfg) { - Material mat = new Material(assetManaget, "Common/MatDefs/Misc/Unshaded.j3md"); - ColorRGBA c = cfg.getMatRandom() ?ColorRGBA.randomColor() : cfg.getMatColor(); - mat.setColor("Color", c); - return mat; - } - - public static Geometry box(AssetManager assetManager) { - NewGeometrySettings cfg = new NewGeometrySettings(); - Box b = new Box(cfg.getBoxX(), cfg.getBoxY(), cfg.getBoxZ()); - b.setMode(cfg.getBoxMode()); - Geometry geom = new Geometry(cfg.getBoxName(), b); - geom.setMaterial(material(assetManager, cfg)); - return geom; - } - - public static Geometry sphere(AssetManager assetManager) { - NewGeometrySettings cfg = new NewGeometrySettings(); - Sphere b = new Sphere( - cfg.getSphereZSamples() - , cfg.getSpherRadialSamples() - , cfg.getSphereRadius() - , cfg.getSphereUseEvenSlices() - , cfg.getSphereInterior() - ); - b.setMode(cfg.getSphereMode()); - Geometry geom = new Geometry(cfg.getSphereName(), b); - geom.setMaterial(material(assetManager, cfg)); - return geom; - } - - public static Geometry line(AssetManager assetManager) { - NewGeometrySettings cfg = new NewGeometrySettings(); - Line b = new Line(cfg.getLineStart(), cfg.getLineEnd()); - b.setMode(cfg.getLineMode()); - Geometry geom = new Geometry(cfg.getLineName(), b); - geom.setMaterial(material(assetManager, cfg)); - return geom; - } - - public static Geometry quad(AssetManager assetManager) { - NewGeometrySettings cfg = new NewGeometrySettings(); - Quad b = new Quad(cfg.getQuadWidth(), cfg.getQuadHeight(), cfg.getQuadFlipCoords()); - b.setMode(cfg.getQuadMode()); - Geometry geom = new Geometry(cfg.getQuadName(), b); - switch(cfg.getQuadPlan()) { - case XZ: { - Quaternion q = new Quaternion(); - q.fromAngles((float)Math.PI/-2f, 0.0f, 0.0f); - geom.setLocalRotation(q); - break; - } - case YZ: { - Quaternion q = new Quaternion(); - q.fromAngles(0.0f, (float)Math.PI/-2f, 0.0f); - geom.setLocalRotation(q); - break; - } - } - geom.setMaterial(material(assetManager, cfg)); - return geom; - } -} diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryBoxAction.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryBoxAction.java index 680e0ca35..960a03da1 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryBoxAction.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryBoxAction.java @@ -31,11 +31,15 @@ */ package com.jme3.gde.core.sceneexplorer.nodes.actions.impl; +import com.jme3.asset.AssetManager; import com.jme3.gde.core.sceneexplorer.nodes.actions.AbstractNewSpatialAction; import com.jme3.gde.core.sceneexplorer.nodes.actions.NewGeometryAction; +import com.jme3.material.Material; +import com.jme3.math.ColorRGBA; import com.jme3.scene.Geometry; import com.jme3.scene.Node; import com.jme3.scene.Spatial; +import com.jme3.scene.shape.Box; /** * @@ -50,8 +54,24 @@ public class NewGeometryBoxAction extends AbstractNewSpatialAction implements Ne @Override protected Spatial doCreateSpatial(Node parent) { - Geometry geom = NewGeometry.box(pm); + Geometry geom = box(pm); parent.attachChild(geom); return geom; } + + static Material material(AssetManager assetManaget, NewGeometrySettings cfg) { + Material mat = new Material(assetManaget, "Common/MatDefs/Misc/Unshaded.j3md"); + ColorRGBA c = cfg.getMatRandom() ?ColorRGBA.randomColor() : cfg.getMatColor(); + mat.setColor("Color", c); + return mat; + } + + static Geometry box(AssetManager assetManager) { + NewGeometrySettings cfg = new NewGeometrySettings(); + Box b = new Box(cfg.getBoxX(), cfg.getBoxY(), cfg.getBoxZ()); + b.setMode(cfg.getBoxMode()); + Geometry geom = new Geometry(cfg.getBoxName(), b); + geom.setMaterial(material(assetManager, cfg)); + return geom; + } } diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryLineAction.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryLineAction.java index 5da424f86..124968444 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryLineAction.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryLineAction.java @@ -31,11 +31,15 @@ */ package com.jme3.gde.core.sceneexplorer.nodes.actions.impl; +import com.jme3.asset.AssetManager; import com.jme3.gde.core.sceneexplorer.nodes.actions.AbstractNewSpatialAction; import com.jme3.gde.core.sceneexplorer.nodes.actions.NewGeometryAction; +import com.jme3.material.Material; +import com.jme3.math.ColorRGBA; import com.jme3.scene.Geometry; import com.jme3.scene.Node; import com.jme3.scene.Spatial; +import com.jme3.scene.shape.Line; /** * @@ -50,8 +54,25 @@ public class NewGeometryLineAction extends AbstractNewSpatialAction implements N @Override protected Spatial doCreateSpatial(Node parent) { - Geometry geom = NewGeometry.line(pm); + Geometry geom = line(pm); parent.attachChild(geom); return geom; } + + static Material material(AssetManager assetManaget, NewGeometrySettings cfg) { + Material mat = new Material(assetManaget, "Common/MatDefs/Misc/Unshaded.j3md"); + ColorRGBA c = cfg.getMatRandom() ?ColorRGBA.randomColor() : cfg.getMatColor(); + mat.setColor("Color", c); + return mat; + } + + static Geometry line(AssetManager assetManager) { + NewGeometrySettings cfg = new NewGeometrySettings(); + Line b = new Line(cfg.getLineStart(), cfg.getLineEnd()); + b.setMode(cfg.getLineMode()); + Geometry geom = new Geometry(cfg.getLineName(), b); + geom.setMaterial(material(assetManager, cfg)); + return geom; + } + } diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryQuadAction.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryQuadAction.java index 581ea5a43..00634edac 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryQuadAction.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometryQuadAction.java @@ -31,11 +31,16 @@ */ package com.jme3.gde.core.sceneexplorer.nodes.actions.impl; +import com.jme3.asset.AssetManager; import com.jme3.gde.core.sceneexplorer.nodes.actions.AbstractNewSpatialAction; import com.jme3.gde.core.sceneexplorer.nodes.actions.NewGeometryAction; +import com.jme3.material.Material; +import com.jme3.math.ColorRGBA; +import com.jme3.math.Quaternion; import com.jme3.scene.Geometry; import com.jme3.scene.Node; import com.jme3.scene.Spatial; +import com.jme3.scene.shape.Quad; /** * @@ -50,8 +55,38 @@ public class NewGeometryQuadAction extends AbstractNewSpatialAction implements N @Override protected Spatial doCreateSpatial(Node parent) { - Geometry geom = NewGeometry.quad(pm); + Geometry geom = quad(pm); parent.attachChild(geom); return geom; } + + static Material material(AssetManager assetManaget, NewGeometrySettings cfg) { + Material mat = new Material(assetManaget, "Common/MatDefs/Misc/Unshaded.j3md"); + ColorRGBA c = cfg.getMatRandom() ?ColorRGBA.randomColor() : cfg.getMatColor(); + mat.setColor("Color", c); + return mat; + } + + static Geometry quad(AssetManager assetManager) { + NewGeometrySettings cfg = new NewGeometrySettings(); + Quad b = new Quad(cfg.getQuadWidth(), cfg.getQuadHeight(), cfg.getQuadFlipCoords()); + b.setMode(cfg.getQuadMode()); + Geometry geom = new Geometry(cfg.getQuadName(), b); + switch(cfg.getQuadPlan()) { + case XZ: { + Quaternion q = new Quaternion(); + q.fromAngles((float)Math.PI/-2f, 0.0f, 0.0f); + geom.setLocalRotation(q); + break; + } + case YZ: { + Quaternion q = new Quaternion(); + q.fromAngles(0.0f, (float)Math.PI/-2f, 0.0f); + geom.setLocalRotation(q); + break; + } + } + geom.setMaterial(material(assetManager, cfg)); + return geom; + } } diff --git a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometrySphereAction.java b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometrySphereAction.java index 0c67ce760..842442ffd 100644 --- a/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometrySphereAction.java +++ b/sdk/jme3-core/src/com/jme3/gde/core/sceneexplorer/nodes/actions/impl/NewGeometrySphereAction.java @@ -31,11 +31,15 @@ */ package com.jme3.gde.core.sceneexplorer.nodes.actions.impl; +import com.jme3.asset.AssetManager; import com.jme3.gde.core.sceneexplorer.nodes.actions.AbstractNewSpatialAction; import com.jme3.gde.core.sceneexplorer.nodes.actions.NewGeometryAction; +import com.jme3.material.Material; +import com.jme3.math.ColorRGBA; import com.jme3.scene.Geometry; import com.jme3.scene.Node; import com.jme3.scene.Spatial; +import com.jme3.scene.shape.Sphere; /** * @@ -50,8 +54,31 @@ public class NewGeometrySphereAction extends AbstractNewSpatialAction implements @Override protected Spatial doCreateSpatial(Node parent) { - Geometry geom = NewGeometry.sphere(pm); + Geometry geom = sphere(pm); parent.attachChild(geom); return geom; } + + static Material material(AssetManager assetManaget, NewGeometrySettings cfg) { + Material mat = new Material(assetManaget, "Common/MatDefs/Misc/Unshaded.j3md"); + ColorRGBA c = cfg.getMatRandom() ?ColorRGBA.randomColor() : cfg.getMatColor(); + mat.setColor("Color", c); + return mat; + } + + static Geometry sphere(AssetManager assetManager) { + NewGeometrySettings cfg = new NewGeometrySettings(); + Sphere b = new Sphere( + cfg.getSphereZSamples() + , cfg.getSpherRadialSamples() + , cfg.getSphereRadius() + , cfg.getSphereUseEvenSlices() + , cfg.getSphereInterior() + ); + b.setMode(cfg.getSphereMode()); + Geometry geom = new Geometry(cfg.getSphereName(), b); + geom.setMaterial(material(assetManager, cfg)); + return geom; + } + }