physics
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
RigidBody Class Reference

RigidBody structure for organising data to model physics simulations of convex hull collisions. More...

#include "body.hpp"

Public Member Functions

 RigidBody ()
 Default constructor, RigidBody needs to be init{Type} with one of the inititalization functions. More...
 
 ~RigidBody ()
 Destructor. More...
 
int integrateForces (vec3 gravity, float deltaTime)
 Method for integrating all the forces for a timestep. More...
 
int integrateVelocities (float deltaTime)
 Method for integrating the velocities for a timestep. More...
 
void add (int bodyID)
 Add a CollisionBody to RigidBody. More...
 
mat4 getModelMatrix ()
 Getter for model matrix, only the integrator can update the model matrix. More...
 
bool getColliding ()
 Getter for whether RigidBody is colliding or not. More...
 

Public Attributes

int id = -1
 
float coefficient_of_restitution
 
float mass
 
float one_over_mass
 
float density = 1.0f
 
vec3 cm_position
 
mat3 orientation
 
vec3 cm_velocity
 
vec3 angular_momentum
 
vec3 cm_force
 
vec3 torque
 
mat3 inverse_world_inertia_tensor
 
mat3 inverse_body_inertia_tensor
 
vec3 angular_velocity
 
vector< vec3 > a_bounding_vertices
 
vector< vec3 > a_body_bounding_vertices = {}
 
vector< unsigned int > bodyIndexes = {}
 
int compositeBodyIndex = -1
 
BodyType type
 
bool apply_gyroscopic_term = false
 
bool sleeping = false
 
unsigned int colliding = 0
 

Static Public Attributes

static int Counter
 
static vector< RigidBody * > allBodies
 

Detailed Description

RigidBody structure for organising data to model physics simulations of convex hull collisions.

Constructor & Destructor Documentation

◆ RigidBody()

RigidBody::RigidBody ( )

Default constructor, RigidBody needs to be init{Type} with one of the inititalization functions.

◆ ~RigidBody()

RigidBody::~RigidBody ( )

Destructor.

Member Function Documentation

◆ add()

void RigidBody::add ( int  bodyID)

◆ getColliding()

bool RigidBody::getColliding ( )

Getter for whether RigidBody is colliding or not.

◆ getModelMatrix()

mat4 RigidBody::getModelMatrix ( )

Getter for model matrix, only the integrator can update the model matrix.

◆ integrateForces()

int RigidBody::integrateForces ( vec3  gravity,
float  deltaTime 
)

Method for integrating all the forces for a timestep.

◆ integrateVelocities()

int RigidBody::integrateVelocities ( float  deltaTime)

Method for integrating the velocities for a timestep.

Member Data Documentation

◆ a_body_bounding_vertices

vector<vec3> RigidBody::a_body_bounding_vertices = {}

◆ a_bounding_vertices

vector<vec3> RigidBody::a_bounding_vertices
Initial value:
= { vec3(0,0,0),vec3(0,0,0),vec3(0,0,0),vec3(0,0,0),
vec3(0,0,0),vec3(0,0,0),vec3(0,0,0),vec3(0,0,0) }

◆ allBodies

vector<RigidBody*> RigidBody::allBodies
static

◆ angular_momentum

vec3 RigidBody::angular_momentum

◆ angular_velocity

vec3 RigidBody::angular_velocity

◆ apply_gyroscopic_term

bool RigidBody::apply_gyroscopic_term = false

◆ bodyIndexes

vector<unsigned int> RigidBody::bodyIndexes = {}

◆ cm_force

vec3 RigidBody::cm_force

◆ cm_position

vec3 RigidBody::cm_position

◆ cm_velocity

vec3 RigidBody::cm_velocity

◆ coefficient_of_restitution

float RigidBody::coefficient_of_restitution

◆ colliding

unsigned int RigidBody::colliding = 0

◆ compositeBodyIndex

int RigidBody::compositeBodyIndex = -1

◆ Counter

int RigidBody::Counter
static

◆ density

float RigidBody::density = 1.0f

◆ id

int RigidBody::id = -1

◆ inverse_body_inertia_tensor

mat3 RigidBody::inverse_body_inertia_tensor

◆ inverse_world_inertia_tensor

mat3 RigidBody::inverse_world_inertia_tensor

◆ mass

float RigidBody::mass

◆ one_over_mass

float RigidBody::one_over_mass

◆ orientation

mat3 RigidBody::orientation

◆ sleeping

bool RigidBody::sleeping = false

◆ torque

vec3 RigidBody::torque

◆ type

BodyType RigidBody::type

The documentation for this class was generated from the following file: