hmi.elckerlyc.animationengine.gaze
Class DynamicGazeMU

java.lang.Object
  extended by hmi.elckerlyc.animationengine.gaze.GazeMU
      extended by hmi.elckerlyc.animationengine.gaze.DynamicGazeMU
All Implemented Interfaces:
KeyPositionManager, MotionUnit
Direct Known Subclasses:
DynamicEyeGazeMU

public class DynamicGazeMU
extends GazeMU

Very simple dynamic gaze tracker, does not use any prediction. Interpolates between current neck pose and desired (moving) neck pose with interpolation weight timestep/remainingduration when t < 0.25 Perfectly tracks target when 0.25 < t < 0.75

Author:
welberge

Field Summary
private  float[] qCurr
           
private  float[] qEndCurr
           
private  float[] targetPosCurr
           
 
Fields inherited from class hmi.elckerlyc.animationengine.gaze.GazeMU
lEye, neck, offsetAngle, offsetDirection, player, preparationDuration, qGaze, qStart, qStartLeftEye, qStartRightEye, qTemp, ready, relax, relaxDuration, rEye, target, tmp, vecTemp, woManager, woTarget
 
Constructor Summary
DynamicGazeMU()
           
 
Method Summary
 DynamicGazeMU copy(AnimationPlayer p)
          Create a copy of this motion unit and link it to the animationplayer
 MotionUnit getPredictor(VJoint predict)
          Creates a gaze predictor.
 void play(double t)
          Executes the motion unit, typically by rotating some VJoints
 
Methods inherited from class hmi.elckerlyc.animationengine.gaze.GazeMU
addKeyPosition, createTMU, getKeyPosition, getKeyPositions, getOffsetRotation, getParameterValue, getPreferedDuration, getReplacementGroup, removeKeyPosition, setEndRotation, setEndRotation, setKeyPositions, setParameterValue, setParameterValue, setStartPose, setTarget, setTimeManipulator
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

targetPosCurr

private float[] targetPosCurr

qCurr

private float[] qCurr

qEndCurr

private float[] qEndCurr
Constructor Detail

DynamicGazeMU

public DynamicGazeMU()
Method Detail

copy

public DynamicGazeMU copy(AnimationPlayer p)
Description copied from interface: MotionUnit
Create a copy of this motion unit and link it to the animationplayer

Specified by:
copy in interface MotionUnit
Overrides:
copy in class GazeMU

getPredictor

public MotionUnit getPredictor(VJoint predict)
Creates a gaze predictor. The gaze predictor starts at whatever start pose the first call to play on its TMU will set. This also locks the target pos. Since the GazeMU allows flexible start poses, it's not very handy nor needed to use a prediction on any time before the ready sync.

Specified by:
getPredictor in interface MotionUnit
Overrides:
getPredictor in class GazeMU
Parameters:
predict - VJoint to execute the prediction on
Returns:
predictor motion unit

play

public void play(double t)
          throws MUPlayException
Description copied from interface: MotionUnit
Executes the motion unit, typically by rotating some VJoints

Specified by:
play in interface MotionUnit
Overrides:
play in class GazeMU
Parameters:
t - execution time, 0 < t < 1
Throws:
MUPlayException - if the play fails for some reason