Physsim::ArticulatedBody Class Reference

Abstract class for articulated bodies. More...

#include <ArticulatedBody.h>

Inheritance diagram for Physsim::ArticulatedBody:

Physsim::DynamicBody Physsim::Visualizable Physsim::Base Physsim::MCArticulatedBody Physsim::RCArticulatedBody List of all members.

Public Member Functions

Matrix3 det_collision_matrix (const Matrix3 &collision_frame, const Vector3 &contact_point, RigidBodyPtr colliding_link)
 Computes the collision matrix K (as described in [Mirtich, 1996], p. 144, for this body only.
virtual void transform (const Matrix4 &T)
 Transforms all links in the articulated body by the given transform.
virtual void correct_joint_limit_collisions (Real collision_tolerance)=0
 Abstract method for correcting joint limit collisions.
virtual void correct_joint_limit_violations ()=0
 Abstract method for correcting joint limit violations.
virtual bool joint_limit_collision (Real collision_tolerance) const=0
 Abstract method for determining whether or not there is a collision at the joint-limit.
virtual void apply_impulse (const Vector3 &j, const Vector3 &k, const Vector3 &p, RigidBodyPtr link)=0
 Abstract method for applying an impulse to this articulated body.
virtual VectorN get_state ()=0
 Abstract method for getting the state of the articulated body.
virtual VectorN get_state_deriv ()=0
 Abstract method for getting the state derivative of the articulated body.
virtual void set_state (const VectorN &state)=0
 Abstract method for setting the state of the articulated body.
virtual std::list< RigidBodyPtr > get_rigid_bodies () const=0
 Virtual method for getting all of the rigid bodies (links) that comprise this articulated body.
virtual std::list< sorted_pair<
RigidBodyPtr > > 
get_adjacent_links () const=0
 Virtual method for getting each pair of adjacent links in the body.
virtual void reset_accumulators ()=0
 Method for resetting the force and torque accumulators on all links.
virtual void compile ()=0
 Method for "compiling" the body (if necessary).

Static Public Member Functions

static Matrix3 det_collision_matrix (const Matrix3 &collision_frame, const Vector3 &contact_point, RigidBodyPtr link1, boost::shared_ptr< RigidBody > link2)

Detailed Description

Abstract class for articulated bodies.


Member Function Documentation

void ArticulatedBody::transform ( const Matrix4 T  )  [virtual]

Transforms all links in the articulated body by the given transform.

The given transformation is cumulative; the links will not necessarily be set to T.

Implements Physsim::DynamicBody.

virtual void Physsim::ArticulatedBody::apply_impulse ( const Vector3 j,
const Vector3 k,
const Vector3 p,
RigidBodyPtr  link 
) [pure virtual]

Abstract method for applying an impulse to this articulated body.

Parameters:
j the linear component of an impulse
k the angular component of an impulse
p the point at which to apply the impulse
link link in the articulated body where the impulse is applied

Implemented in Physsim::RCArticulatedBody.


The documentation for this class was generated from the following files:
Generated on Wed Oct 24 14:54:22 2007 for Physsim by  doxygen 1.5.1