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 |