/**
* Provides details for animating a walk.
*
* @author Peter Wu
*/
interface WalkAnimation {
/**
* Sets the new position for the robot.
*
* @param pos Position in meters.
*/
void updatePosition(double pos);
/**
* Finds the angle between the left upper leg and the rotated upper leg. If
* the robot does not move, the angle is probably 0. When the leg is
* positioned behind the robot, the angle is negative. Similarly, when the
* robot is positioned forward, the angle is positive.
*
* @return angle in degrees.
*/
public double getLegAngleLeft();
/**
* Finds the angle between the right upper leg and the rotated upper leg. If
* the robot does not move, the angle is probably 0. When the leg is
* positioned behind the robot, the angle is negative. Similarly, when the
* robot is positioned forward, the angle is positive.
*
* @return angle in degrees.
*/
public double getLegAngleRight();
/**
* Finds the angle behind the left knee.
*
* @return angle in degrees.
*/
public double getKneeAngleLeft();
/**
* Finds the angle behind the right knee.
*
* @return angle in degrees.
*/
public double getKneeAngleRight();
/**
* Finds the angle between the left arm and the rotated arm. Similar to
* getLegAngleLeft()
.
*
* @return angle in degrees.
*/
public double getArmAngleLeft();
/**
* Finds the angle between the right arm and the rotated arm. Similar to
* getLegAngleRight()
.
*
* @return angle in degrees.
*/
public double getArmAngleRight();
/**
* Finds the distance between the floor and the bottom of the body.
*
* @return A distance in meters.
*/
public double getBottomOffset();
}