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

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

#include "body.hpp"

Public Member Functions

 CollisionBody ()
 Default constructor, CollisionBody needs to be init{Type} with one of the inititalization functions. More...
 
CollisionBodyoperator= (const CollisionBody &other)
 
 CollisionBody (const CollisionBody &other)
 
 ~CollisionBody ()
 
mat4 getModelMatrix ()
 Getter for model matrix, only the integrator can update the model matrix. More...
 
int update ()
 Updates the collision data for the current frame. More...
 
int calculateVertices ()
 Calculates world space vertex data, for collision detection. More...
 

Static Public Member Functions

static int getIndex (int ID)
 Get index in CollisionBody.allBodies for the ID. More...
 

Public Attributes

float dX2 = 0.5f
 
float dY2 = 0.5f
 
float dZ2 = 0.5f
 
float bounding_radius
 
BodyType type = BodyType::NONE
 
int id = -1
 
vector< int > triIDs = {}
 
vector< int > objectIDs = {}
 
bool colliding
 
float coefficient_of_restitution
 
float mass
 
float one_over_mass
 
float density = 1.0f
 
float friction
 
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< Facefaces = {}
 
vector< Edgeedges = {}
 
mat4 offset
 
void * contactFeature = NULL
 
int compositeBodyIndex = -1
 
bool sleeping = false
 
int group_id = -1
 
bool is_static = false
 

Static Public Attributes

static vector< CollisionBody * > allBodies
 
static int Counter
 

Detailed Description

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

Constructor & Destructor Documentation

◆ CollisionBody() [1/2]

CollisionBody::CollisionBody ( )

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

◆ CollisionBody() [2/2]

CollisionBody::CollisionBody ( const CollisionBody other)

◆ ~CollisionBody()

CollisionBody::~CollisionBody ( )

Member Function Documentation

◆ calculateVertices()

int CollisionBody::calculateVertices ( )

Calculates world space vertex data, for collision detection.

◆ getIndex()

static int CollisionBody::getIndex ( int  ID)
static

Get index in CollisionBody.allBodies for the ID.

◆ getModelMatrix()

mat4 CollisionBody::getModelMatrix ( )

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

◆ operator=()

CollisionBody& CollisionBody::operator= ( const CollisionBody other)

◆ update()

int CollisionBody::update ( )

Updates the collision data for the current frame.

Member Data Documentation

◆ a_body_bounding_vertices

vector<vec3> CollisionBody::a_body_bounding_vertices = {}

◆ a_bounding_vertices

vector<vec3> CollisionBody::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<CollisionBody*> CollisionBody::allBodies
static

◆ angular_momentum

vec3 CollisionBody::angular_momentum

◆ angular_velocity

vec3 CollisionBody::angular_velocity

◆ bounding_radius

float CollisionBody::bounding_radius

◆ cm_force

vec3 CollisionBody::cm_force

◆ cm_position

vec3 CollisionBody::cm_position

◆ cm_velocity

vec3 CollisionBody::cm_velocity

◆ coefficient_of_restitution

float CollisionBody::coefficient_of_restitution

◆ colliding

bool CollisionBody::colliding

◆ compositeBodyIndex

int CollisionBody::compositeBodyIndex = -1

◆ contactFeature

void* CollisionBody::contactFeature = NULL

◆ Counter

int CollisionBody::Counter
static

◆ density

float CollisionBody::density = 1.0f

◆ dX2

float CollisionBody::dX2 = 0.5f

◆ dY2

float CollisionBody::dY2 = 0.5f

◆ dZ2

float CollisionBody::dZ2 = 0.5f

◆ edges

vector<Edge> CollisionBody::edges = {}

◆ faces

vector<Face> CollisionBody::faces = {}

◆ friction

float CollisionBody::friction

◆ group_id

int CollisionBody::group_id = -1

◆ id

int CollisionBody::id = -1

◆ inverse_body_inertia_tensor

mat3 CollisionBody::inverse_body_inertia_tensor

◆ inverse_world_inertia_tensor

mat3 CollisionBody::inverse_world_inertia_tensor

◆ is_static

bool CollisionBody::is_static = false

◆ mass

float CollisionBody::mass

◆ objectIDs

vector<int> CollisionBody::objectIDs = {}

◆ offset

mat4 CollisionBody::offset

◆ one_over_mass

float CollisionBody::one_over_mass

◆ orientation

mat3 CollisionBody::orientation

◆ sleeping

bool CollisionBody::sleeping = false

◆ torque

vec3 CollisionBody::torque

◆ triIDs

vector<int> CollisionBody::triIDs = {}

◆ type

BodyType CollisionBody::type = BodyType::NONE

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