#include <MCArticulatedBody.h>
Inheritance diagram for Physsim::MCArticulatedBody:

Public Member Functions | |
| MCArticulatedBody (const MCArticulatedBody &source) | |
| virtual void | clone (BasePtr &cloned, bimap< BasePtr, BasePtr > *obj_map=NULL) const |
| Implements Base::clone(). | |
| virtual bool | is_struct_identical (BaseConstPtr object) const |
| virtual void | load_state (BaseConstPtr object, bimap< BasePtr, BasePtr > *correspondence=NULL) |
| Implements Base::load_state(). | |
| virtual void | save_state (BasePtr object, bimap< BasePtr, BasePtr > *correspondence=NULL) const |
| Implements Base::save_state(). | |
| void | set_links (const std::vector< ArticulatedBodyLinkPtr > &links) |
| RigidBodyPtr | find_link (const std::string &linkname) const |
| MCArticulatedBodyJointPtr | find_joint (const std::string &jointname) const |
| void | add_link (MCArticulatedBodyLinkPtr link) |
| virtual VectorN | get_state_deriv () |
| Abstract method for getting the state derivative of the articulated body. | |
| virtual VectorN | get_state () |
| Abstract method for getting the state of the articulated body. | |
| virtual void | set_state (const VectorN &state) |
| Abstract method for setting the state of the articulated body. | |
| MatrixNPtr | calc_jacobian_column (MCMCArticulatedBodyJointPtr joint, const Vector3 &point) |
| MatrixNNPtr | calc_jacobian_floating_base (const VectorN &point) |
| virtual std::list< RigidBodyPtr > | get_rigid_bodies () const |
| Virtual method for getting all of the rigid bodies (links) that comprise this articulated body. | |
| virtual void | reset_accumulators () |
| Method for resetting the force and torque accumulators on all links. | |
|
virtual std::list< sorted_pair< RigidBodyPtr > > | get_adjacent_links () const |
| Virtual method for getting each pair of adjacent links in the body. | |
| void | add_joint (MCArticulatedBodyJointPtr joint) |
| void | set_joints (const std::vector< MCArticulatedBodyJointPtr > joints) |
| void | update_link_transforms () const |
| void | update_link_velocities () |
| void | apply_impulse (const Vector3 &j, const Vector3 &k, const Vector3 &contact_point, MCArticulatedBodyLinkPtr link) |
| virtual void | compile () |
| Method for "compiling" the body (if necessary). | |
| virtual void | calc_fwd_dyn () |
| Forces a recalculation of forward dynamics. | |
| virtual void | update_visualization () |
| Updates the visualization using the appropriate transform. | |
| virtual void | load_from_xml (XMLTreeConstPtr node, std::map< std::string, BasePtr > &id_map) |
| Implements Base::load_from_xml(). | |
| virtual void | save_to_xml (XMLTreePtr node, std::list< BaseConstPtr > &shared_objects) const |
| Implements Base::save_to_xml(). | |
| MCArticulatedBodyPtr | get_this () |
| MCArticulatedBodyConstPtr | get_this () const |
| virtual bool | joint_limit_collision (Real collision_tolerance) const |
| Abstract method for determining whether or not there is a collision at the joint-limit. | |
| virtual void | correct_joint_limit_collisions (Real collision_tolerance) |
| Abstract method for correcting joint limit collisions. | |
| virtual void | correct_joint_limit_violations () |
| Abstract method for correcting joint limit violations. | |
| const std::vector< MCArticulatedBodyLinkPtr > & | get_links () const |
| Gets the list of links; ordering is irrelevant. | |
| const std::vector< MCArticulatedBodyJointPtr > & | get_joints () const |
| Gets the list of joints; ordering is irrelevant. | |
Maximal-coordinate methods are generally inferior to reduced-coordinate methods for simulating loop-free structures, due to increased computation requirements as well as numerical and physical stability issues that arise in correcting drift. Regardless, a maximal-coordinate formulation is often the best option for structures with kinematic loops. Physsim does not currently provide means to simulate structures with kinematic loops using reduced-coordinate methods, so a maximal-coordinate approach is necessary. For loop-free structures, both reduced and maximal-coordinate methods are feasible.
| virtual void Physsim::MCArticulatedBody::update_visualization | ( | ) | [virtual] |
Updates the visualization using the appropriate transform.
derived classes may override this method to set the transform right before it is updated, if desired
Reimplemented from Physsim::Visualizable.
1.5.1