diff --git a/src/java/com/threerings/jme/JmeCanvasApp.java b/src/java/com/threerings/jme/JmeCanvasApp.java index 7ac7fcd3..3292c128 100644 --- a/src/java/com/threerings/jme/JmeCanvasApp.java +++ b/src/java/com/threerings/jme/JmeCanvasApp.java @@ -163,6 +163,7 @@ public class JmeCanvasApp extends JmeApp renderer.setHeadless(true); setRenderer(renderer); _display.setRenderer(renderer); + _display.getCurrentContext().setupRecords(renderer); DisplaySystem.updateStates(renderer); if (!init()) { diff --git a/src/java/com/threerings/jme/model/Model.java b/src/java/com/threerings/jme/model/Model.java index 47dbc819..b81be9d5 100644 --- a/src/java/com/threerings/jme/model/Model.java +++ b/src/java/com/threerings/jme/model/Model.java @@ -917,7 +917,7 @@ public class Model extends ModelNode { // update the bounds with an identity transform (which will be // overwritten after this method is called) - getWorldRotation().set(Quaternion.IDENTITY); + getWorldRotation().loadIdentity(); getWorldTranslation().set(Vector3f.ZERO); getWorldScale().set(Vector3f.UNIT_XYZ); for (int ii = 0, nn = getQuantity(); ii < nn; ii++) { diff --git a/src/java/com/threerings/jme/model/ModelMesh.java b/src/java/com/threerings/jme/model/ModelMesh.java index ae08a9ad..46e8c9cc 100644 --- a/src/java/com/threerings/jme/model/ModelMesh.java +++ b/src/java/com/threerings/jme/model/ModelMesh.java @@ -86,6 +86,13 @@ public class ModelMesh extends TriMesh super(name); } + @Override // documentation inherited + public int hashCode () + { + // hash on the name rather than the identity for consistent ordering + return getName().hashCode(); + } + /** * Reconfigures this model with a new set of (sub-)properties. Textures * must be (re-)resolved after calling this method. diff --git a/src/java/com/threerings/jme/model/ModelNode.java b/src/java/com/threerings/jme/model/ModelNode.java index d1ac0f80..2c92ee85 100644 --- a/src/java/com/threerings/jme/model/ModelNode.java +++ b/src/java/com/threerings/jme/model/ModelNode.java @@ -64,6 +64,13 @@ public class ModelNode extends Node super(name); } + @Override // documentation inherited + public int hashCode () + { + // hash on the name rather than the identity for consistent ordering + return getName().hashCode(); + } + /** * Recursively searches the scene graph rooted at this node for a * node with the provided name. @@ -391,7 +398,7 @@ public class ModelNode extends Node Vector3f translation, Quaternion rotation, Vector3f scale, Matrix4f result) { - result.set(rotation); + result.setRotationQuaternion(rotation); result.setTranslation(translation); result.m00 *= scale.x;