Bläddra i källkod

TransformTrack: protect the no-arg constructor (#1531)

* TransformTrack: protect the no-arg constructor

* TransformTrack: avoid NPE when "times" is null in setKeyframes()
Stephen Gold 4 år sedan
förälder
incheckning
ad22b2f5d1

+ 4 - 2
jme3-core/src/main/java/com/jme3/anim/TransformTrack.java

@@ -63,7 +63,7 @@ public class TransformTrack implements AnimTrack<Transform> {
     /**
      * Serialization-only. Do not use.
      */
-    public TransformTrack() {
+    protected TransformTrack() {
     }
 
     /**
@@ -197,7 +197,9 @@ public class TransformTrack implements AnimTrack<Transform> {
      * @param scales       the scale of the bone for each frame
      */
     public void setKeyframes(float[] times, Vector3f[] translations, Quaternion[] rotations, Vector3f[] scales) {
-        setTimes(times);
+        if (times != null) {
+            setTimes(times);
+        }
         if (translations != null) {
             setKeyframesTranslation(translations);
         }

+ 1 - 2
jme3-plugins/src/ogre/java/com/jme3/scene/plugins/ogre/SkeletonLoader.java

@@ -93,8 +93,7 @@ public class SkeletonLoader extends DefaultHandler implements AssetLoader {
             assert elementStack.peek().equals("tracks");
             String jointName = SAXUtil.parseString(attribs.getValue("bone"));
             joint = nameToJoint.get(jointName);
-            track = new TransformTrack();
-            track.setTarget(joint);
+            track = new TransformTrack(joint, null, null, null, null);
         } else if (qName.equals("boneparent")) {
             assert elementStack.peek().equals("bonehierarchy");
             String jointName = attribs.getValue("bone");