From 01caf5cca6e5dc99c87a81c777ce7b3bd3a0f814 Mon Sep 17 00:00:00 2001 From: Andrzej Kapolka Date: Wed, 26 Apr 2006 02:59:55 +0000 Subject: [PATCH] Revised exporter coordinate systems, updated emitter positioning. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4060 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- src/java/com/threerings/jme/model/EmissionController.java | 2 +- src/java/com/threerings/jme/model/Model.java | 4 +++- src/java/com/threerings/jme/model/ModelController.java | 7 ++++++- src/java/com/threerings/jme/tools/ModelViewer.java | 5 ++++- src/ms/TRAnimationExporter.mcr | 4 ++-- src/ms/TRModelExporter.mcr | 6 +++--- 6 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/java/com/threerings/jme/model/EmissionController.java b/src/java/com/threerings/jme/model/EmissionController.java index 2c305abae..207907eee 100644 --- a/src/java/com/threerings/jme/model/EmissionController.java +++ b/src/java/com/threerings/jme/model/EmissionController.java @@ -55,7 +55,7 @@ public abstract class EmissionController extends ModelController BufferUtils.populateFromBuffer(result, ((Geometry)_target).getNormalBuffer(), 0); } else { - result.set(0f, -1f, 0f); + result.set(0f, 0f, -1f); } _target.getWorldRotation().multLocal(result); } diff --git a/src/java/com/threerings/jme/model/Model.java b/src/java/com/threerings/jme/model/Model.java index 759a51a55..e94131787 100644 --- a/src/java/com/threerings/jme/model/Model.java +++ b/src/java/com/threerings/jme/model/Model.java @@ -520,6 +520,8 @@ public class Model extends ModelNode @Override // documentation inherited public void updateWorldData (float time) { + // slow evvvverything down by the animation speed + time *= _animSpeed; if (_anim != null) { updateAnimation(time); } @@ -567,7 +569,7 @@ public class Model extends ModelNode return; } - _elapsed += (time * _anim.frameRate * _animSpeed); + _elapsed += (time * _anim.frameRate); } /** diff --git a/src/java/com/threerings/jme/model/ModelController.java b/src/java/com/threerings/jme/model/ModelController.java index 7f9d128cc..ba6aeebbf 100644 --- a/src/java/com/threerings/jme/model/ModelController.java +++ b/src/java/com/threerings/jme/model/ModelController.java @@ -49,7 +49,12 @@ public abstract class ModelController extends Controller */ public void configure (Properties props, Spatial target) { - _target = target; + if (target instanceof ModelNode) { + _target = ((ModelNode)target).getChild("mesh"); + } + if (_target == null) { + _target = target; + } String[] anims = StringUtil.parseStringArray( props.getProperty("animations", "")); if (anims.length == 0) { diff --git a/src/java/com/threerings/jme/tools/ModelViewer.java b/src/java/com/threerings/jme/tools/ModelViewer.java index 86adda0b1..157d68a9f 100644 --- a/src/java/com/threerings/jme/tools/ModelViewer.java +++ b/src/java/com/threerings/jme/tools/ModelViewer.java @@ -197,6 +197,9 @@ public class ModelViewer extends JmeCanvasApp _animctrls.add(new Spacer(50, 1)); _animctrls.add(new JLabel(_msg.get("m.anim_speed"))); _animctrls.add(_animspeed = new JSlider(-100, +100, 0)); + _animspeed.setMajorTickSpacing(10); + _animspeed.setSnapToTicks(true); + _animspeed.setPaintTicks(true); _animspeed.addChangeListener(new ChangeListener() { public void stateChanged (ChangeEvent e) { updateAnimationSpeed(); @@ -484,7 +487,7 @@ public class ModelViewer extends JmeCanvasApp protected void updateAnimationSpeed () { _model.setAnimationSpeed( - FastMath.pow(2f, _animspeed.getValue() / 50f)); + FastMath.pow(2f, _animspeed.getValue() / 25f)); } /** The resource manager. */ diff --git a/src/ms/TRAnimationExporter.mcr b/src/ms/TRAnimationExporter.mcr index 19e08bfe8..7c94d1d97 100644 --- a/src/ms/TRAnimationExporter.mcr +++ b/src/ms/TRAnimationExporter.mcr @@ -50,7 +50,7 @@ macroScript TRAnimationExporter category:"File" \ -- Writes a single animation frame fn writeFrame nodes outFile = ( format " \n" to:outFile - for node in nodes do ( + for node in nodes do in coordsys world ( writeTransform node outFile ) format " \n\n" to:outFile @@ -68,7 +68,7 @@ macroScript TRAnimationExporter category:"File" \ ) else ( nodes = objects ) - for i = animationRange.start to animationRange.end do at time i ( + for t = animationRange.start to animationRange.end do at time t ( writeFrame nodes outFile ) format "\n" to:outFile diff --git a/src/ms/TRModelExporter.mcr b/src/ms/TRModelExporter.mcr index 9edddd27c..edc10b4da 100644 --- a/src/ms/TRModelExporter.mcr +++ b/src/ms/TRModelExporter.mcr @@ -68,7 +68,7 @@ macroScript TRModelExporter category:"File" \ if mesh.numtverts > 0 do ( tvface = getTVFace mesh i ) - for i = 1 to 3 do in coordsys local ( + for i = 1 to 3 do ( format "