# Class: bonecontrol

Allows manual control of bones in bonesystems found in l3dmodels.

## Hierarchy

    o-+ l3dlist
      o-+ bonecontrol

## Interfaces:

- hashid

## Methods:

### Method overview:

- activate
- axis
- deactivate
- delete
- deleteall
- ikallchildren
- ikdepth
- ikiterations
- iklookat
- ikthreshold
- invertaxis
- matrix
- newabs
- newik
- newlookat
- newrelative
- pos
- rotaxis
- rotdeg
- rotrad
- target

activate (bonecontrol,l3dmodel)
  returns: ()
  activates bonecontrol on given l3dmodel
axis (bonecontrol,[int])
  returns: ([int])
  returns or sets axis along we aim
deactivate (bonecontrol)
  returns: ()
  deactivates bonecontrol
delete (bonecontrol)
  returns: ()
  deletes the controller
deleteall ()
  returns: ()
  deletes all bonecontrollers (active or not)
ikallchildren (bonecontrol,[boolean])
  returns: ([boolean])
  returns or sets if all affected children should be updated. By default (false) we only update the bone's parents.
ikdepth (bonecontrol,[int])
  returns: ([int])
  returns or sets depth of IK chain. means how many steps up in hierarchy we go. number must be smaller than the parent chain this bone has.
ikiterations (bonecontrol,[int])
  returns: ([int])
  returns or sets iterations of IK chain. how many iterations of the full IK chain we will do if we are above threshold
iklookat (bonecontrol,[boolean])
  returns: ([boolean])
  returns or sets if a lookat effect should be applied on the ik root as well (default is false)
ikthreshold (bonecontrol,[float])
  returns: ([float])
  returns or sets threshold of IK chain. if square distance is below threshold we stop
invertaxis (bonecontrol,[boolean])
  returns: ([boolean])
  returns or sets if aim axis should be inverted
matrix (bonecontrol,[matrix16])
  returns: (matrix16)
  returns or sets matrix
newabs (boneid)
  returns: (bonecontrol)
  a new abs bonecontroller. The bone will takeover the target matrix or local matrix (pos/rot)
newik (boneid)
  returns: (bonecontrol)
  a new ik bonecontroller. The bone will try to reach the target location. The bone must have one parent.
newlookat (boneid)
  returns: (bonecontrol)
  a new lookat bonecontroller. The bone will orient the defined axis in such a way that it aims at the target
newrelative (boneid)
  returns: (bonecontrol)
  a new relative bonecontroller, use pos/rot to manually rotate or move a bone
pos (bonecontrol,[float x,y,z])
  returns: (float x,y,z)
  returns or sets position
rotaxis (bonecontrol,[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 (bonecontrol,[float x,y,z])
  returns: (float x,y,z)
  returns or sets rotation in degrees
rotrad (bonecontrol,[float x,y,z])
  returns: (float x,y,z)
  returns or sets rotation in radians
target (bonecontrol,[actnornode]/[scenenode])
  returns: ()
  sets target for ik/abs/lookat, for abs it will overwrite the matrix. If no argument is passed then it will be unlinked.

## Inherited Methods:

### From l3dlist

reinit