#include <rigidbod.h>
Inheritance diagram for ctRigidBody:
Public Methods | |
ctRigidBody () | |
ctRigidBody (ctReferenceFrame &ref, ctDeltaReferenceFrame &dref) | |
virtual | ~ctRigidBody () |
void | calc_simple_I_tensor (real width, real height, real depth) |
Calculate interia tensor as if body was a solid block of given dimensions. More... | |
const ctMatrix3& | get_I () |
Get Inertia tensor. | |
const ctMatrix3& | get_I_inv () |
Get Inverse Inertia tensor. | |
ctMatrix3 | get_I_inv_world () |
ctMatrix3 | get_I_world () |
virtual void | get_impulse_m_and_I_inv (real *pm, ctMatrix3 *pI_inv, const ctVector3 &impulse_point, const ctVector3 &unit_length_impulse_vector) |
Fill out mass and inverse inertia tensor behaviour for an impulse response impulse_point is point of collision in world frame. | |
ctVector3 | get_angular_P () |
Get Angular Momentum. | |
ctVector3 | get_P () |
virtual int | get_state_size () |
ODE interface. | |
virtual int | set_state (real *state_array) |
Add this body's state to the state vector buffer passed in. More... | |
virtual int | get_state (const real *state_array) |
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. | |
virtual void | set_angular_v (const ctVector3 &pw) |
Set angular velocity. | |
virtual void | set_v (const ctVector3 &pv) |
virtual because v is calculated from P ( momentum ) in rigid bodies. | |
virtual void | add_angular_v (const ctVector3 &pw) |
virtual void | add_v (const ctVector3 &pv) |
virtual void | set_m (real pm) |
virtual void | apply_impulse (ctVector3 impulse_point, ctVector3 impulse_vector) |
Impulse_point is vector from center of body to point of collision in world coordinates. More... | |
Public Attributes | |
iObjectRegistry* | object_reg |
Static Public Methods | |
ctRigidBody* | new_ctRigidBody () |
Convienent to create enitites with parent as world frame of reference. | |
ctRigidBody* | new_ctRigidBody (coord x, coord y, coord z) |
int | get_RB_state_size () |
Get Rigid Body state size. | |
Protected Attributes | |
ctVector3 | P |
Momentum. | |
ctVector3 | L |
Angular momentum. | |
ctMatrix3 | I |
Intertia tensor. | |
ctMatrix3 | I_inv |
Inverse of Inertia tensor. |
|
Impulse_point is vector from center of body to point of collision in world coordinates. impulse_vector is in world coords. Reimplemented from ctPhysicalEntity. |
|
Calculate interia tensor as if body was a solid block of given dimensions. NOTE: m must be given first. |
|
Add this body's state to the state vector buffer passed in. Increment state buffer to point after added state. Upload Reimplemented from ctPhysicalEntity. |