#include <articula.h>
Inheritance diagram for ctArticulatedBody:

Public Methods | |
| ctArticulatedBody () | |
| ctArticulatedBody (ctRigidBody *phandle) | |
| virtual | ~ctArticulatedBody () |
| ctReferenceFrame* | get_handle_RF () |
| return reference frame for this handle ( to world ). | |
| ctRigidBody* | get_handle () |
| return the physical body that is the root of this articulated figure. | |
| void | rotate_around_axis (real ptheta) |
| rotate this link around it's axis by ptheta radians. | |
| void | link_revolute (ctArticulatedBody *child, ctVector3 &pin_joint_offset, ctVector3 &pout_joint_offset, ctVector3 &pjoint_axis) |
| link two bodies together with a revolute joint. More... | |
| void | link_joint (ctJoint *jnt, ctArticulatedBody *child) |
| virtual void | apply_given_F (ctForce &frc) |
| Add this force to the list of forces that will be applied each frame. | |
| void | apply_forces (real t) |
| compute force and torque from all forces acting on this articulated body that includeds this handle and all children down to the leaf nodes. | |
| virtual void | apply_impulse (ctVector3 impulse_point, ctVector3 impulse_vector) |
| Can use this to impart and impulse to this object. More... | |
| virtual void | get_impulse_m_and_I_inv (real *pm, ctMatrix3 *pI_inv, const ctVector3 &impulse_point, const ctVector3 &unit_length_impulse_vector) |
| impulse_point is point of collision in world frame. | |
| virtual void | init_state () |
| Init values that will influence the calculation of the change in state. | |
| virtual int | get_state_size () |
| Return the size of this entity's state vector. | |
| virtual int | set_state (real *sa) |
| Add this body's state to the state vector buffer passed in. More... | |
| virtual int | get_state (const real *sa) |
| Download state from buffer into this entity. | |
| virtual int | set_delta_state (real *state_array) |
| Add change in state vector over time to state buffer parameter. | |
| int | set_state_links (real *sa) |
| state methods for all children. More... | |
| int | get_state_links (const real *sa) |
| int | set_delta_state_links (real *state_array) |
| void | make_grounded () |
| ungrounded articulated bodies are not staticaly attached to the world frame. | |
| void | make_ungrounded () |
| void | attach_to_entity (ctKinematicEntity *pattache) |
| this articulated body is attached to some other entity. More... | |
| void | detattached_from_entity () |
| ctFeatherstoneAlgorithm* | install_featherstone_solver () |
| forward dynamics algorithm. The default solver. | |
| ctInverseKinematics* | install_IK_solver () |
| inverse kinematics algorithm. set the goal after this. | |
| void | compute_link_velocities () |
| propagates velocities from base link to ends of articulated bodies also calculates T_fg and r_fg. | |
| void | calc_relative_frame () |
| calculate relative frame of reference from parent. | |
| void | update_links () |
Public Attributes | |
| int | tag |
Static Public Methods | |
| void | set_joint_friction (double pfrict=DEFAULT_JOINT_FRICTION) |
| me this should be in ctJoint. | |
Protected Attributes | |
| ctRigidBody* | handle |
| rigid body for the root of this articulated body. | |
| ctJoint* | inboard_joint |
| joint attaching this body to parent. NULL if root. | |
| ctLinkList<ctArticulatedBody> | outboard_links |
| children. | |
| bool | is_grounded |
| is it fixed to the world frame? | |
| ctKinematicEntity* | attached_to |
| ctMatrix3 | T_fg |
| Calculated in compute_link_velocities. More... | |
| ctVector3 | r_fg |
| Frame to this frame. More... | |
| ctVector3 | w_body |
| Angular and linear velocity calculated in this bodies frame. More... | |
| ctVector3 | v_body |
Friends | |
| class | ctFeatherstoneAlgorithm |
| class | ctInverseKinematics |
| class | ctJoint |
|
|
Can use this to impart and impulse to this object. Impulse_point is vector from center of body to point of collision in world coordinates. Impulse_vector is in world coords Reimplemented from ctPhysicalEntity. |
|
|
this articulated body is attached to some other entity. it will respond to the accelerations of the entity it is attached to. |
|
|
link two bodies together with a revolute joint. pin_joint_offset is the offset from the inboard( parent ) link to joint pout_joint_offset is from the outbaord (child) link to the joint. all offsets are directed from a link's C.O.M. to the joint |
|
|
Add this body's state to the state vector buffer passed in. Increment state buffer to point after added state. Upload Reimplemented from ctPhysicalEntity. |
|
|
state methods for all children. just need to call these for root and it will recurse down and call standard state methods appropriately for all children |
|
|
Calculated in compute_link_velocities. coord transfrom matrix, not rotation, from inboard link |
|
|
Frame to this frame. Vector from center of inboard frame to this frame in this frame's coords |
|
|
Angular and linear velocity calculated in this bodies frame. Calculated in compute_link_velocities. |