|
SCL
1.0
Standard Control Library : Control, dynamics, physics, and simulation
|
root node class for articulated body dynamicsThis implements taoDNode for root node of a articulated body tree structure. More...
#include <taoNode.h>


Public Member Functions | |
| taoNodeRoot (deFrame const &global) | |
| virtual void | sync (deFrame *local) |
| virtual taoJoint * | getJointList () |
| virtual taoJoint const * | getJointList () const |
| virtual deVector6 * | velocity () |
| virtual deVector6 * | acceleration () |
| virtual void | getFrameGraphics (deFrame *Tog) |
| global frame for graphics display More... | |
| virtual deFrame * | frameHome () |
| virtual deFrame * | frameLocal () |
| virtual deFrame * | frameGlobal () |
| global frame for the dynamics computation More... | |
| virtual deFrame const * | frameGlobal () const |
| virtual deFloat * | mass () |
| virtual deVector3 * | center () |
| virtual deVector3 const * | center () const |
| virtual deMatrix3 * | inertia () |
| virtual deVector6 * | force () |
| virtual void | zeroForce () |
| virtual void | addForce (const deVector6 *f) |
| virtual void | updateFrame () |
| virtual void | integrate (deFloat dt) |
| virtual taoDNode * | getDParent () |
| virtual taoDNode const * | getDParent () const |
| virtual void | setDChild (taoDNode *n) |
| virtual taoDNode * | getDChild () |
| virtual taoDNode const * | getDChild () const |
| virtual taoDNode * | getDSibling () |
| virtual taoDNode const * | getDSibling () const |
| void | setNext (taoNodeRoot *r) |
| taoNodeRoot * | getNext () |
| void | setGroup (taoWorld *g) |
| taoWorld * | getGroup () |
| void | setController (taoControl *c) |
| taoControl * | getController () |
| virtual void | sync () |
| virtual deInt | isRoot () |
| indicates if this node is root More... | |
| virtual deInt | isParentRoot () |
| indicates if parent of this node is root More... | |
| virtual taoArticulatedBodyLink * | getABNode () |
| gets _abNode More... | |
| virtual void | setABNode (taoArticulatedBodyLink *node) |
| sets _abNode More... | |
| virtual deInt | getPropagate () |
| indicates if dynamics of node should be included for control More... | |
| virtual void | setPropagate (deInt p) |
| virtual void | setID (const deInt id) |
| virtual deInt | getID () const |
| virtual void | setIsFixed (const deInt f) |
| virtual deInt | getIsFixed () |
| virtual deFloat | getCOR () |
| virtual deFloat | getCOF_grip () |
| virtual deFloat | getCOF_viscous () |
| virtual deFloat | getCOF_static () |
| virtual deFloat | getCOF_dynamic () |
| virtual void | setCOR (deFloat c) |
| coefficient of restitution More... | |
Private Member Functions | |
| void | _DeleteNodeTree (taoDNode *r) |
| void | _SyncNodeTree (taoDNode *r) |
Private Attributes | |
| deFloat | _zero |
| deFrame | _frameGlobal |
| taoWorld * | _group |
| taoControl * | _controller |
| taoNode * | _child |
| taoNodeRoot * | _next |
Coefficients of friction | |
where
| |
| virtual void | force (const deVector3 *Pie, const deVector3 *Fie) |
| computes new force given force More... | |
| virtual void | setCOF_grip (deFloat c) |
cofg : coefficient of grip friction when v != 0 and y != 0 : f_g = - sign(v_t) * More... | |
| virtual void | setCOF_viscous (deFloat c) |
cofv : coefficient of viscous friction when v != 0 : f_v = - v_t * More... | |
| virtual void | setCOF_static (deFloat c) |
cofs : coefficient of static friction when v == 0 and a != 0 : f_s = - sign(a_t) * More... | |
| virtual void | setCOF_dynamic (deFloat c) |
cofd : coefficient of dynamic friction when v != 0 : f_d = - sign(v_t) * More... | |
| virtual deFloat | effectiveMass (const deVector3 *Pie, const deVector3 *Ui) |
| virtual void | linearVelocity (deVector3 *Vie, const deVector3 *Pie) |
| virtual void | linearAcceleration (deVector3 *Aie, const deVector3 *Pie) |
| virtual void | impulse (const deVector3 *Pie, const deVector3 *Yie) |
| computes new velocity given impulse More... | |
| virtual void | impulseDist (const deVector3 *Pie, const deVector3 *Yie) |
| computes new position given pseudo impulse More... | |
| virtual deInt | impact1 (const deVector3 *Pie, const deVector3 *Ui, const deFloat cor2, const deFloat cofg2) |
| computes new velocity and force given pos, vel, acc More... | |
| virtual deInt | impact2 (taoDNode *ni, const deVector3 *Pie, const deVector3 *Ui, taoDNode *nj, const deVector3 *Pje, const deVector3 *Uj) |
| This method computes impulse/force and changes velocity/friction between two colliding nodes, ni and nj. More... | |
| virtual deInt | penetration1 (const deVector3 *Pie, const deVector3 *Ui, const deVector3 *pdist, const deFloat dt) |
This method computes impulse and changes position/orientation using impulseDist(). More... | |
| std::string | name_ |
root node class for articulated body dynamics
This implements taoDNode for root node of a articulated body tree structure.
|
inlinevirtual |
Implements taoDNode.
|
inlinevirtual |
| fext | accumulate all external forces |
Implements taoDNode.
|
inlinevirtualinherited |
computes new force given force
This method replaces the accumulated force with the given force.
Pie - contact point expressed in local frame. Fie - force at the contact point expressed in local frame. Reimplemented in taoNode.
|
inlinevirtual |
global frame for the dynamics computation
Implements taoDNode.
|
inlinevirtualinherited |
gets _abNode
|
inlinevirtual |
Implements taoDNode.
|
inlinevirtual |
Implements taoDNode.
|
inlinevirtual |
global frame for graphics display
| Fg | is filled with the frame info for graphics sync. |
Implements taoDNode.
|
inlinevirtualinherited |
indicates if dynamics of node should be included for control
| 1 | to propagate dynamics of node for control |
| 0 | not to propagate dynamics of node for control |
|
virtualinherited |
computes new velocity and force given pos, vel, acc
Pie - contact point expressed in local frame. Ui - unit contact direction vector expressed in local frame (outward normal vector) cor2 - coefficient of restitution of the other collision node. cof2 - coefficient of grip friction of the other collision node.
|
virtualinherited |
This method computes impulse/force and changes velocity/friction between two colliding nodes, ni and nj.
Pie - contact point expressed in frame i : Pie = ^iP_e - ^iP_i Pje - contact point expressed in frame j : Pje = ^jP_e - ^jP_j Ui - unit contact direction vector expressed in frame i : Ui = (^iP_j - ^iP_i)/|^iP_j - ^iP_i| Uj - Ui expressed in frame j
|
inlinevirtualinherited |
computes new velocity given impulse
This method changes velocity instantaneously by applying the given impulse.
Pie - contact point expressed in local frame. Yie - impulse at the contact point expressed in local frame. Reimplemented in taoNode.
|
inlinevirtualinherited |
computes new position given pseudo impulse
This method changes position and orientation instantaneously by applying the given pseudo impulse.
Pie - contact point expressed in local frame. Yie - pseudo impulse at the contact point expressed in local frame. Reimplemented in taoNode.
|
inlinevirtual |
Implements taoDNode.
|
inlinevirtualinherited |
indicates if parent of this node is root
| 1 | parent this node is root |
| 0 | parent this node in not root |
|
inlinevirtualinherited |
indicates if this node is root
| 1 | this node is root |
| 0 | this node in not root |
|
inlinevirtual |
Implements taoDNode.
|
virtualinherited |
This method computes impulse and changes position/orientation using impulseDist().
Pie - contact point expressed in local frame. Ui - unit contact direction vector expressed in local frame (outward normal vector). pdist - penetration distance vector : pdist = P_o - P_i dt - integration time step.
|
inlinevirtualinherited |
sets _abNode
|
inlinevirtualinherited |
cofd : coefficient of dynamic friction when v != 0 : f_d = - sign(v_t) * cofd * f_n
|
inlinevirtualinherited |
cofg : coefficient of grip friction when v != 0 and y != 0 : f_g = - sign(v_t) * cofg * y_n
|
inlinevirtualinherited |
cofs : coefficient of static friction when v == 0 and a != 0 : f_s = - sign(a_t) * cofs * f_n
|
inlinevirtualinherited |
cofv : coefficient of viscous friction when v != 0 : f_v = - v_t * cofv
|
inlinevirtualinherited |
coefficient of restitution
|
virtual |
1.8.6