diff --git a/jme3-core/src/main/java/com/jme3/anim/AnimComposer.java b/jme3-core/src/main/java/com/jme3/anim/AnimComposer.java index d997ab39d..b8ac76668 100644 --- a/jme3-core/src/main/java/com/jme3/anim/AnimComposer.java +++ b/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; + } + } /** *