#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. |