Vamos_Body::Rigid_Body Class Reference

#include <Rigid_Body.h>

Inheritance diagram for Vamos_Body::Rigid_Body:

Inheritance graph
[legend]
Collaboration diagram for Vamos_Body::Rigid_Body:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Rigid_Body (const Vamos_Geometry::Three_Vector &pos, const Vamos_Geometry::Three_Matrix &orient)
 Rigid_Body (const Vamos_Geometry::Three_Vector &pos)
 Rigid_Body ()
virtual ~Rigid_Body ()
Vamos_Geometry::Three_Vector center_of_mass () const
Vamos_Geometry::Three_Vector cm_position ()
Vamos_Geometry::Three_Vector position () const
bool IsValid ()
Vamos_Geometry::Three_Vector contact_position (Particle *contact_point)
Vamos_Geometry::Three_Vector last_contact_position (Particle *contact_point)
double lowest_contact_position () const
void add_particle (Particle *const comp)
void update_center_of_mass ()
std::vector< Particle * > & particles ()
void find_forces ()
void propagate (double time)
void propagate_contact ()
void rewind ()
void end_timestep ()
void gravity (const Vamos_Geometry::Three_Vector &grav)
Vamos_Geometry::Three_Vector velocity (Particle *particle)
Vamos_Geometry::Three_Vector cm_velocity () const
Vamos_Geometry::Three_Vector cm_last_velocity () const
void cm_velocity (Vamos_Geometry::Three_Vector vel)
void contact (Particle *contact_point, double distance, const Vamos_Geometry::Three_Vector &normal, Vamos_Geometry::Material_Handle material)
void wind (Particle *aero_device, const Vamos_Geometry::Three_Vector &wind_vector, double density)
double mass () const
virtual void draw ()
virtual void reset ()
virtual void reset (const Vamos_Geometry::Three_Vector &position, const Vamos_Geometry::Three_Matrix &orientation)
void set_position (Vamos_Geometry::Three_Vector np)
void set_orientation (Vamos_Geometry::Three_Matrix no)
void set_angvel (Vamos_Geometry::Three_Vector nav)
void set_velocity (Vamos_Geometry::Three_Vector vel)
void roll_back ()
void kill_vel ()
void single_point_contact (Vamos_Geometry::Three_Vector worldposition, double distance, Vamos_Geometry::Three_Vector normal, Vamos_Geometry::Material_Handle material, double time)

Protected Attributes

Vamos_Geometry::Inertia_Tensor m_inertia
std::vector< Particle * > m_particles
Vamos_Geometry::Three_Vector m_body_cm
Vamos_Geometry::Three_Vector m_last_body_cm

Private Member Functions

void private_reset ()

Private Attributes

Vamos_Geometry::Three_Vector m_initial_position
Vamos_Geometry::Three_Vector m_last_position
Vamos_Geometry::Three_Vector m_cm_velocity
Vamos_Geometry::Three_Vector m_last_cm_velocity
Vamos_Geometry::Three_Vector m_last_velocity
Vamos_Geometry::Three_Matrix m_last_orientation
Vamos_Geometry::Three_Vector m_last_ang_velocity
Vamos_Geometry::Three_Vector m_gravity
double m_delta_time
double m_mass
Contact_Parameters m_contact_parameters
bool valid

Detailed Description

Definition at line 46 of file Rigid_Body.h.


Constructor & Destructor Documentation

Vamos_Body::Rigid_Body::Rigid_Body const Vamos_Geometry::Three_Vector pos,
const Vamos_Geometry::Three_Matrix orient
 

Definition at line 46 of file Rigid_Body.cc.

References valid.

Vamos_Body::Rigid_Body::Rigid_Body const Vamos_Geometry::Three_Vector pos  ) 
 

Definition at line 57 of file Rigid_Body.cc.

References valid.

Vamos_Body::Rigid_Body::Rigid_Body  ) 
 

Definition at line 68 of file Rigid_Body.cc.

References valid.

Vamos_Body::Rigid_Body::~Rigid_Body  )  [virtual]
 

Definition at line 79 of file Rigid_Body.cc.

References m_particles.


Member Function Documentation

void Vamos_Body::Rigid_Body::add_particle Particle *const   comp  )  [inline]
 

Definition at line 135 of file Rigid_Body.h.

References m_particles.

Vamos_Geometry::Three_Vector Vamos_Body::Rigid_Body::center_of_mass  )  const [inline]
 

Definition at line 113 of file Rigid_Body.h.

References m_body_cm.

Referenced by Vamos_Body::Gl_Car::transform_body(), and Vamos_Body::Gl_Car::view().

Vamos_Geometry::Three_Vector Vamos_Body::Rigid_Body::cm_last_velocity  )  const [inline]
 

Definition at line 170 of file Rigid_Body.h.

References m_last_cm_velocity.

Three_Vector Vamos_Body::Rigid_Body::cm_position  ) 
 

Definition at line 94 of file Rigid_Body.cc.

References m_body_cm, and Vamos_Body::Frame::transform_out().

void Vamos_Body::Rigid_Body::cm_velocity Vamos_Geometry::Three_Vector  vel  )  [inline]
 

Definition at line 173 of file Rigid_Body.h.

References m_cm_velocity.

Vamos_Geometry::Three_Vector Vamos_Body::Rigid_Body::cm_velocity  )  const [inline]
 

Definition at line 169 of file Rigid_Body.h.

References m_cm_velocity.

Referenced by Vamos_Body::Car::GetState(), and Vamos_Body::Car::steer().

void Vamos_Body::Rigid_Body::contact Particle contact_point,
double  distance,
const Vamos_Geometry::Three_Vector normal,
Vamos_Geometry::Material_Handle  material
 

Definition at line 479 of file Rigid_Body.cc.

References m_contact_parameters, Vamos_Body::Contact_Parameters::m_distance, Vamos_Body::Contact_Parameters::m_material, Vamos_Body::Contact_Parameters::m_normal, Vamos_Body::Contact_Parameters::mp_contact_point, and Vamos_Body::Particle::single_contact().

Referenced by propagate().

Three_Vector Vamos_Body::Rigid_Body::contact_position Particle contact_point  ) 
 

Definition at line 102 of file Rigid_Body.cc.

References Vamos_Body::Particle::contact_position(), m_body_cm, and Vamos_Body::Frame::transform_out().

virtual void Vamos_Body::Rigid_Body::draw  )  [inline, virtual]
 

Definition at line 193 of file Rigid_Body.h.

void Vamos_Body::Rigid_Body::end_timestep  ) 
 

Definition at line 458 of file Rigid_Body.cc.

References m_particles.

void Vamos_Body::Rigid_Body::find_forces  ) 
 

Definition at line 212 of file Rigid_Body.cc.

References m_particles.

void Vamos_Body::Rigid_Body::gravity const Vamos_Geometry::Three_Vector grav  )  [inline]
 

Definition at line 160 of file Rigid_Body.h.

References m_gravity.

bool Vamos_Body::Rigid_Body::IsValid  )  [inline]
 

Definition at line 124 of file Rigid_Body.h.

References valid.

void Vamos_Body::Rigid_Body::kill_vel  ) 
 

Definition at line 141 of file Rigid_Body.cc.

References Vamos_Body::Frame::m_ang_velocity, m_particles, and Vamos_Body::Frame::m_velocity.

Three_Vector Vamos_Body::Rigid_Body::last_contact_position Particle contact_point  ) 
 

Definition at line 108 of file Rigid_Body.cc.

References Vamos_Body::Particle::contact_position(), m_last_body_cm, m_last_orientation, m_last_position, Vamos_Body::Frame::m_orientation, Vamos_Body::Frame::m_position, and Vamos_Body::Frame::transform_out().

double Vamos_Body::Rigid_Body::lowest_contact_position  )  const
 

Definition at line 157 of file Rigid_Body.cc.

References m_particles, and Vamos_Body::Frame::transform_out().

double Vamos_Body::Rigid_Body::mass  )  const [inline]
 

Definition at line 189 of file Rigid_Body.h.

References m_mass.

Referenced by Vamos_Body::Gl_Car::draw_dashboard_extras().

std::vector<Particle*>& Vamos_Body::Rigid_Body::particles  )  [inline]
 

Definition at line 143 of file Rigid_Body.h.

References m_particles.

Vamos_Geometry::Three_Vector Vamos_Body::Rigid_Body::position  )  const [inline]
 

Reimplemented from Vamos_Body::Frame.

Definition at line 121 of file Rigid_Body.h.

References Vamos_Body::Frame::position().

Referenced by Vamos_Body::Car::GetState(), propagate_contact(), reset(), single_point_contact(), and Vamos_Body::Gl_Car::transform_body().

void Vamos_Body::Rigid_Body::private_reset  )  [private]
 

Definition at line 545 of file Rigid_Body.cc.

References Vamos_Body::Frame::m_ang_velocity, m_cm_velocity, m_particles, Vamos_Body::Frame::m_velocity, and Vamos_Geometry::Three_Vector::zero().

Referenced by reset().

void Vamos_Body::Rigid_Body::propagate double  time  ) 
 

Definition at line 357 of file Rigid_Body.cc.

References contact(), m_particles, update_center_of_mass(), and valid.

void Vamos_Body::Rigid_Body::propagate_contact  ) 
 

Definition at line 223 of file Rigid_Body.cc.

References Vamos_Body::Particle::contact(), Vamos_Body::Particle::contact_position(), Vamos_Body::Frame::m_ang_velocity, m_body_cm, m_cm_velocity, m_contact_parameters, Vamos_Body::Contact_Parameters::m_distance, m_inertia, Vamos_Body::Contact_Parameters::m_material, Vamos_Body::Contact_Parameters::m_normal, Vamos_Body::Contact_Parameters::mp_contact_point, Vamos_Body::Frame::position(), position(), Vamos_Geometry::Three_Vector::project(), Vamos_Body::Frame::rotate_in(), Vamos_Body::Frame::rotate_out(), Vamos_Body::Frame::translate(), and Vamos_Body::Frame::velocity().

void Vamos_Body::Rigid_Body::reset const Vamos_Geometry::Three_Vector position,
const Vamos_Geometry::Three_Matrix orientation
[virtual]
 

Definition at line 534 of file Rigid_Body.cc.

References Vamos_Body::Frame::m_orientation, Vamos_Body::Frame::m_position, Vamos_Body::Frame::orientation(), position(), and private_reset().

void Vamos_Body::Rigid_Body::reset  )  [virtual]
 

Definition at line 523 of file Rigid_Body.cc.

References Vamos_Geometry::Three_Matrix::identity(), m_initial_position, Vamos_Body::Frame::m_orientation, Vamos_Body::Frame::m_position, and private_reset().

Referenced by Vamos_Body::Car::reset().

void Vamos_Body::Rigid_Body::rewind  ) 
 

Definition at line 446 of file Rigid_Body.cc.

References Vamos_Body::Frame::m_ang_velocity, m_cm_velocity, m_last_ang_velocity, m_last_cm_velocity, m_last_orientation, m_last_position, m_last_velocity, Vamos_Body::Frame::m_orientation, Vamos_Body::Frame::m_position, and Vamos_Body::Frame::m_velocity.

void Vamos_Body::Rigid_Body::roll_back  ) 
 

Definition at line 131 of file Rigid_Body.cc.

References Vamos_Body::Frame::m_ang_velocity, m_body_cm, m_cm_velocity, m_last_ang_velocity, m_last_body_cm, m_last_cm_velocity, m_last_orientation, m_last_position, Vamos_Body::Frame::m_orientation, and Vamos_Body::Frame::m_position.

void Vamos_Body::Rigid_Body::set_angvel Vamos_Geometry::Three_Vector  nav  )  [inline]
 

Definition at line 205 of file Rigid_Body.h.

References m_last_ang_velocity, and Vamos_Body::Frame::set_ang_velocity().

Referenced by Vamos_Body::Car::SetState().

void Vamos_Body::Rigid_Body::set_orientation Vamos_Geometry::Three_Matrix  no  )  [inline]
 

Definition at line 204 of file Rigid_Body.h.

References m_last_orientation, and Vamos_Body::Frame::orient().

Referenced by Vamos_Body::Car::SetState().

void Vamos_Body::Rigid_Body::set_position Vamos_Geometry::Three_Vector  np  )  [inline]
 

Definition at line 203 of file Rigid_Body.h.

References m_last_position, and Vamos_Body::Frame::place().

Referenced by Vamos_Body::Car::SetState().

void Vamos_Body::Rigid_Body::set_velocity Vamos_Geometry::Three_Vector  vel  )  [inline]
 

Reimplemented from Vamos_Body::Frame.

Definition at line 206 of file Rigid_Body.h.

References m_cm_velocity, m_last_cm_velocity, m_last_velocity, and Vamos_Body::Frame::m_velocity.

Referenced by Vamos_Body::Car::SetState().

void Vamos_Body::Rigid_Body::single_point_contact Vamos_Geometry::Three_Vector  worldposition,
double  distance,
Vamos_Geometry::Three_Vector  normal,
Vamos_Geometry::Material_Handle  material,
double  time
 

Definition at line 251 of file Rigid_Body.cc.

References Vamos_Geometry::Three_Vector::abs(), Vamos_Geometry::Three_Vector::cross(), Vamos_Geometry::Inertia_Tensor::inertia(), Vamos_Geometry::Inertia_Tensor::inverse(), Vamos_Body::Frame::m_ang_velocity, m_body_cm, m_cm_velocity, m_gravity, m_inertia, m_last_position, m_mass, Vamos_Body::Frame::m_position, Vamos_Body::Frame::m_velocity, position(), Vamos_Geometry::Three_Vector::project(), Vamos_Body::Frame::rotate(), Vamos_Body::Frame::rotate_in(), Vamos_Body::Frame::rotate_out(), Vamos_Body::Frame::transform_in(), Vamos_Body::Frame::translate(), Vamos_Geometry::Three_Vector::unit(), and Vamos_Body::Frame::velocity().

void Vamos_Body::Rigid_Body::update_center_of_mass  ) 
 

Definition at line 177 of file Rigid_Body.cc.

References m_body_cm, m_contact_parameters, Vamos_Body::Contact_Parameters::m_distance, m_last_body_cm, m_mass, and m_particles.

Referenced by propagate().

Three_Vector Vamos_Body::Rigid_Body::velocity Particle particle  ) 
 

Definition at line 470 of file Rigid_Body.cc.

References Vamos_Body::Frame::m_ang_velocity, m_body_cm, m_cm_velocity, particle, and Vamos_Body::Frame::rotate_out().

void Vamos_Body::Rigid_Body::wind Particle aero_device,
const Vamos_Geometry::Three_Vector wind_vector,
double  density
 

Definition at line 514 of file Rigid_Body.cc.

References Vamos_Body::Frame::rotate_in(), and Vamos_Body::Particle::wind().


Member Data Documentation

Vamos_Geometry::Three_Vector Vamos_Body::Rigid_Body::m_body_cm [protected]
 

Definition at line 92 of file Rigid_Body.h.

Referenced by center_of_mass(), cm_position(), contact_position(), propagate_contact(), roll_back(), single_point_contact(), update_center_of_mass(), and velocity().

Vamos_Geometry::Three_Vector Vamos_Body::Rigid_Body::m_cm_velocity [private]
 

Definition at line 54 of file Rigid_Body.h.

Referenced by cm_velocity(), private_reset(), propagate_contact(), rewind(), roll_back(), set_velocity(), single_point_contact(), and velocity().

Contact_Parameters Vamos_Body::Rigid_Body::m_contact_parameters [private]
 

Definition at line 78 of file Rigid_Body.h.

Referenced by contact(), propagate_contact(), and update_center_of_mass().

double Vamos_Body::Rigid_Body::m_delta_time [private]
 

Definition at line 70 of file Rigid_Body.h.

Vamos_Geometry::Three_Vector Vamos_Body::Rigid_Body::m_gravity [private]
 

Definition at line 67 of file Rigid_Body.h.

Referenced by gravity(), and single_point_contact().

Vamos_Geometry::Inertia_Tensor Vamos_Body::Rigid_Body::m_inertia [protected]
 

Definition at line 84 of file Rigid_Body.h.

Referenced by propagate_contact(), and single_point_contact().

Vamos_Geometry::Three_Vector Vamos_Body::Rigid_Body::m_initial_position [private]
 

Definition at line 49 of file Rigid_Body.h.

Referenced by reset().

Vamos_Geometry::Three_Vector Vamos_Body::Rigid_Body::m_last_ang_velocity [private]
 

Definition at line 62 of file Rigid_Body.h.

Referenced by rewind(), roll_back(), and set_angvel().

Vamos_Geometry::Three_Vector Vamos_Body::Rigid_Body::m_last_body_cm [protected]
 

Definition at line 94 of file Rigid_Body.h.

Referenced by last_contact_position(), roll_back(), and update_center_of_mass().

Vamos_Geometry::Three_Vector Vamos_Body::Rigid_Body::m_last_cm_velocity [private]
 

Definition at line 56 of file Rigid_Body.h.

Referenced by cm_last_velocity(), rewind(), roll_back(), and set_velocity().

Vamos_Geometry::Three_Matrix Vamos_Body::Rigid_Body::m_last_orientation [private]
 

Definition at line 60 of file Rigid_Body.h.

Referenced by last_contact_position(), rewind(), roll_back(), and set_orientation().

Vamos_Geometry::Three_Vector Vamos_Body::Rigid_Body::m_last_position [private]
 

Definition at line 51 of file Rigid_Body.h.

Referenced by last_contact_position(), rewind(), roll_back(), set_position(), and single_point_contact().

Vamos_Geometry::Three_Vector Vamos_Body::Rigid_Body::m_last_velocity [private]
 

Definition at line 58 of file Rigid_Body.h.

Referenced by rewind(), and set_velocity().

double Vamos_Body::Rigid_Body::m_mass [private]
 

Definition at line 73 of file Rigid_Body.h.

Referenced by mass(), single_point_contact(), and update_center_of_mass().

std::vector<Particle*> Vamos_Body::Rigid_Body::m_particles [protected]
 

Definition at line 88 of file Rigid_Body.h.

Referenced by add_particle(), end_timestep(), find_forces(), kill_vel(), lowest_contact_position(), particles(), private_reset(), propagate(), update_center_of_mass(), and ~Rigid_Body().

bool Vamos_Body::Rigid_Body::valid [private]
 

Definition at line 80 of file Rigid_Body.h.

Referenced by IsValid(), propagate(), and Rigid_Body().


The documentation for this class was generated from the following files:
Generated on Thu Oct 19 04:13:30 2006 by  doxygen 1.4.6