From 3256daecb1a58601483c82c790b158443e230377 Mon Sep 17 00:00:00 2001 From: "nor..67" Date: Wed, 24 Aug 2011 23:17:47 +0000 Subject: [PATCH] - fix compile or ManualBlenderTester - add proper blender model load test git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8079 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../jme3test/blender/ManualBlenderTester.java | 26 +++--- .../jme3test/blender/TestBlenderLoader.java | 84 +++++++++++++++++++ 2 files changed, 99 insertions(+), 11 deletions(-) create mode 100644 engine/src/test/jme3test/blender/TestBlenderLoader.java diff --git a/engine/src/test/jme3test/blender/ManualBlenderTester.java b/engine/src/test/jme3test/blender/ManualBlenderTester.java index 3e48159a4..444f77716 100644 --- a/engine/src/test/jme3test/blender/ManualBlenderTester.java +++ b/engine/src/test/jme3test/blender/ManualBlenderTester.java @@ -115,6 +115,10 @@ public class ManualBlenderTester extends SimpleApplication { if (debug) { mouseInput.setCursorVisible(true); } + //XXX: wrong, wrong, wrong!! The assets should be found without registering + //every single folder. + //Definitely need to remove all this and accomapnying classes, + //people use this as examples. assetManager.registerLocator(".", FileLocator.class); assetManager.registerLocator("./src/test-data/Blender/2.4x", FileLocator.class); assetManager.registerLocator("./src/test-data/Blender/2.4x/textures", FileLocator.class); @@ -146,17 +150,17 @@ public class ManualBlenderTester extends SimpleApplication { if (modelKey instanceof BlenderKey) { this.testBlenderLoader(ai); //setting the selected animations as active - List selectedAnimations = blenderKeyConfiguration.getSelectedAnimations().get(modelKey.getName()); - if(selectedAnimations != null) { - for(String[] animData : selectedAnimations) { - Spatial animatedSpatial = this.findNode(this.rootNode, animData[0]); - if(animatedSpatial != null) { - animatedSpatial.getControl(AnimControl.class).createChannel().setAnim(animData[1]); - } else { - LOGGER.warning("Cannot find the node to play its animation: " + animData[0]); - } - } - } +// List selectedAnimations = blenderKeyConfiguration.getSelectedAnimations().get(modelKey.getName()); +// if(selectedAnimations != null) { +// for(String[] animData : selectedAnimations) { +// Spatial animatedSpatial = this.findNode(this.rootNode, animData[0]); +// if(animatedSpatial != null) { +// animatedSpatial.getControl(AnimControl.class).createChannel().setAnim(animData[1]); +// } else { +// LOGGER.warning("Cannot find the node to play its animation: " + animData[0]); +// } +// } +// } } else { this.testBlenderModelLoader(ai); } diff --git a/engine/src/test/jme3test/blender/TestBlenderLoader.java b/engine/src/test/jme3test/blender/TestBlenderLoader.java new file mode 100644 index 000000000..be01d7ed9 --- /dev/null +++ b/engine/src/test/jme3test/blender/TestBlenderLoader.java @@ -0,0 +1,84 @@ +/* + * 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 jme3test.blender; + +import com.jme3.app.SimpleApplication; +import com.jme3.light.DirectionalLight; +import com.jme3.light.PointLight; +import com.jme3.math.ColorRGBA; +import com.jme3.math.Vector3f; +import com.jme3.scene.Spatial; + +public class TestBlenderLoader extends SimpleApplication { + + float angle; + PointLight pl; + Spatial lightMdl; + String assetName; + + public static void main(String[] args){ + TestBlenderLoader app = new TestBlenderLoader(); + app.start(); + } + + @Override + public void simpleInitApp() { + viewPort.setBackgroundColor(ColorRGBA.DarkGray); + + Spatial bumpy = (Spatial) assetManager.loadModel("Blender/2.4x/Sinbad.blend"); + rootNode.attachChild(bumpy); + + // sunset light + DirectionalLight dl = new DirectionalLight(); + dl.setDirection(new Vector3f(-0.1f,-0.7f,1).normalizeLocal()); + dl.setColor(new ColorRGBA(0.44f, 0.30f, 0.20f, 1.0f)); + rootNode.addLight(dl); + + // skylight + dl = new DirectionalLight(); + dl.setDirection(new Vector3f(-0.6f,-1,-0.6f).normalizeLocal()); + dl.setColor(new ColorRGBA(0.10f, 0.22f, 0.44f, 1.0f)); + rootNode.addLight(dl); + + // white ambient light + dl = new DirectionalLight(); + dl.setDirection(new Vector3f(1, -0.5f,-0.1f).normalizeLocal()); + dl.setColor(new ColorRGBA(0.50f, 0.40f, 0.50f, 1.0f)); + rootNode.addLight(dl); + } + + @Override + public void simpleUpdate(float tpf){ + } + +}