# Class: actornode

The actorlist is a double linked ring list containing actornodes. The purpose of actors is to provide positional and movement information in space without information about visual appearance or collision behavior. The matrices of the actors can be linked against l3dnodes in order to display objects on the screen.
Each actor has a name and can be found by using the name. Actors with the same name are grouped in a ring list that can be traversed.

## Hierarchy

    o-+ spatialnode
      o-+ actornode

## Interfaces:

- hashid

## Methods:

### Method overview:

- delete
- deleteall
- link
- linkbone
- lookat
- matrix
- name
- namenext
- new
- pos
- rotaxis
- rotdeg
- rotrad
- vel
- vistestbbox

new (string name,[boolean drawable],[float x,y,z])
  returns: (actornode)
  creates a new actornode (default is drawable at 0,0,0) with the given name
delete (actornode)
  returns: ()
  deletes the actornode
deleteall ()
  returns: ()
  deletes all actornodes in the system
link (actornode, [pgeom geom/other])
  returns: ()
  links actornode to given body or unlinks it if other type is given (i.e. boolean) or if nothing is given. An actor can't tell you the body that it is linked to.
linkbone (actornode self, l3dmodel model, string bone,[matrix16 offset])
  returns: ()
  Links the actor to a certain bone. The position of the actor can not be changed anymore when it is linked. The matrix of a bone is only correct if the l3dnode is visible! Otherwise the behaviour is undefined.
lookat (actornode self, float tox,toy,toz,upx,upy,upz,[int axis 0-2])
  returns: ()
  rotates actornode to look at a point along defined axis. axis can be 0:x, 1:y (defualt) 2:z.
matrix (actornode self, [matrix16 m])
  returns: ([matrix16 m])
  sets/gets matrix
name
  [string name] name (ActorNode self, [string name]) - sets or gets the name
namenext ()
  returns: (actornode actor)
  returns the next actor of same name. Because it is a ringlist, you have to take care about your starting point of the traversion.
pos (actornode self, [float x,y,z])
  returns: ([float x,y,z])
  sets/gets position
rotaxis (ActorNode self,[float Xx,Xy,Xz, Yx,Yy,Yz, Zx,Zy,Zz])
  returns: ([float Xx,Xy,Xz, Yx,Yy,Yz, Zx,Zy,Zz])
  returns or sets rotation axis, make sure they make a orthogonal basis.
rotdeg (actornode self, [float x,y,z])
  returns: ([float x,y,z])
  sets/gets rotation in degrees
rotrad (actornode self, [float x,y,z])
  returns: ([float x,y,z])
  sets/gets rotation in radians
vel (actornode self, [float x,y,z])
  returns: ([float x,y,z])
  sets/gets velocity
vistestbbox (actornode self, [float minX,minY,minZ,maxX,maxY,maxZ])
  returns: ([float minX,minY,minZ,maxX,maxY,maxZ])
  sets/gets visibility testing boundingbox when actornode is drawable

## Inherited Methods: