// pre 

package actor;

import render.Geometry;


/**
 * $Id: Actor.java,v 1.12 2004/03/03 23:12:47 robbins Exp $
 */
public interface Actor 
{
  public void update(WorldState ws);
  
  public void addBehavior(Behavior behavior);

  public void removeBehavior(Behavior behavior);
  
  public void removeAllBehaviors();
 
  // Getters and Setters =================================
  
  public void setAnimationTravel(double animationTravel);
  
  public double getAnimationTravel();
  
  public Geometry getGeometry();
 
  public BehaviorArbitrator getCurrentArbitrator();

  public void setArbitrator(ActorArbitrator arbitrator);

  public BehaviorList getBehaviors();

  public void setBehaviors(BehaviorList behaviors);

  public Point3D getDirection();

  public void setDirection(Point3D direction);

  public ActorGeometry getModel();

  public void setModel(ActorGeometry model);

  public Point3D getPosition();

  public void setPosition(Point3D position);

  public Point3D getSize();

  public void setSize(Point3D size);
  
  public double getUniformSize();
  
  public void setUniformSize(double size);

  public Point3D getVelocity();

  public void setVelocity(Point3D velocity);
  
  public double getX();
  
  public double getY();
  
  public double getZ();
  
  public void updateMotion(MotionChange p);
  


}// end