Browse Source

AnimComposer: added getTime() and setTime() methods (#1201)

Resolves #1200
Ali-RS 6 years ago
parent
commit
5c75af1d38
1 changed files with 30 additions and 0 deletions
  1. 30 0
      jme3-core/src/main/java/com/jme3/anim/AnimComposer.java

+ 30 - 0
jme3-core/src/main/java/com/jme3/anim/AnimComposer.java

@@ -104,6 +104,36 @@ public class AnimComposer extends AbstractControl {
         l.time = 0;
         l.currentAction = null;
     }
+    
+    /**
+     * Returns current time of the specified layer.
+     */
+    public double getTime(String layerName) {
+        Layer l = layers.get(layerName);
+        if (l == null) {
+            throw new IllegalArgumentException("Unknown layer " + layerName);
+        }
+        return l.time;
+    }
+
+    /**
+     * Sets current time on the specified layer. 
+     */
+    public void setTime(String layerName, double time) {
+        Layer l = layers.get(layerName);
+        if (l == null) {
+            throw new IllegalArgumentException("Unknown layer " + layerName);
+        }
+        if (l.currentAction == null) {
+            throw new RuntimeException("There is no action running in layer " + layerName);
+        }
+        double length = l.currentAction.getLength();
+        if (time >= 0) {
+            l.time = time % length;
+        } else {
+            l.time = time % length + length;
+        }
+    }
 
     /**
      *