CubbyFlow::RigidBodyCollider< N > Class Template Referencefinal

N-D rigid body collider class. More...

#include <Core/Geometry/RigidBodyCollider.hpp>

Inheritance diagram for CubbyFlow::RigidBodyCollider< N >:
CubbyFlow::Collider< N >

Classes

class  Builder
 Front-end to create RigidBodyCollider objects step by step. More...
 

Public Member Functions

 RigidBodyCollider (const std::shared_ptr< Surface< N >> &surface)
 Constructs a collider with a surface. More...
 
 RigidBodyCollider (const std::shared_ptr< Surface< N >> &surface, const Vector< double, N > &_linearVelocity, const AngularVelocity< N > &_angularVelocity)
 Constructs a collider with a surface and other parameters. More...
 
Vector< double, N > VelocityAt (const Vector< double, N > &point) const override
 Returns the velocity of the collider at given point. More...
 
- Public Member Functions inherited from CubbyFlow::Collider< N >
 Collider ()=default
 Default constructor. More...
 
virtual ~Collider ()=default
 Default virtual destructor. More...
 
 Collider (const Collider &other)=default
 Default copy constructor. More...
 
 Collider (Collider &&other) noexcept=default
 Default move constructor. More...
 
Collideroperator= (const Collider &other)=default
 Default copy assignment operator. More...
 
Collideroperator= (Collider &&other) noexcept=default
 Default move assignment operator. More...
 
void ResolveCollision (double radius, double restitutionCoefficient, Vector< double, N > *position, Vector< double, N > *velocity)
 
double GetFrictionCoefficient () const
 Returns friction coefficient. More...
 
void SetFrictionCoefficient (double newFrictionCoefficient)
 Sets the friction coefficient. More...
 
const std::shared_ptr< Surface< N > > & GetSurface () const
 Returns the surface instance. More...
 
void Update (double currentTimeInSeconds, double timeIntervalInSeconds)
 Updates the collider state. More...
 
void SetOnBeginUpdateCallback (const OnBeginUpdateCallback &callback)
 Sets the callback function to be called when Collider::update function is invoked. More...
 

Static Public Member Functions

static Builder GetBuilder ()
 Returns builder fox RigidBodyCollider. More...
 

Public Attributes

Vector< double, N > linearVelocity
 Linear velocity of the rigid body. More...
 
AngularVelocity< N > angularVelocity
 Angular velocity of the rigid body. More...
 

Additional Inherited Members

- Public Types inherited from CubbyFlow::Collider< N >
using OnBeginUpdateCallback = std::function< void(Collider *, double, double)>
 Callback function type for update calls. More...
 
- Protected Member Functions inherited from CubbyFlow::Collider< N >
void SetSurface (const std::shared_ptr< Surface< N >> &newSurface)
 Assigns the surface instance from the subclass. More...
 
void GetClosestPoint (const std::shared_ptr< Surface< N >> &surface, const Vector< double, N > &queryPoint, ColliderQueryResult *result) const
 Outputs closest point's information. More...
 
bool IsPenetrating (const ColliderQueryResult &colliderPoint, const Vector< double, N > &position, double radius)
 Returns true if given point is in the opposite side of the surface. More...
 

Detailed Description

template<size_t N>
class CubbyFlow::RigidBodyCollider< N >

N-D rigid body collider class.

This class implements N-D rigid body collider. The collider can only take rigid body motion with linear and rotational velocities.

Constructor & Destructor Documentation

◆ RigidBodyCollider() [1/2]

template<size_t N>
CubbyFlow::RigidBodyCollider< N >::RigidBodyCollider ( const std::shared_ptr< Surface< N >> &  surface)
explicit

Constructs a collider with a surface.

◆ RigidBodyCollider() [2/2]

template<size_t N>
CubbyFlow::RigidBodyCollider< N >::RigidBodyCollider ( const std::shared_ptr< Surface< N >> &  surface,
const Vector< double, N > &  _linearVelocity,
const AngularVelocity< N > &  _angularVelocity 
)

Constructs a collider with a surface and other parameters.

Member Function Documentation

◆ GetBuilder()

template<size_t N>
static Builder CubbyFlow::RigidBodyCollider< N >::GetBuilder ( )
static

Returns builder fox RigidBodyCollider.

◆ VelocityAt()

template<size_t N>
Vector<double, N> CubbyFlow::RigidBodyCollider< N >::VelocityAt ( const Vector< double, N > &  point) const
overridevirtual

Returns the velocity of the collider at given point.

Implements CubbyFlow::Collider< N >.

Member Data Documentation

◆ angularVelocity

template<size_t N>
AngularVelocity<N> CubbyFlow::RigidBodyCollider< N >::angularVelocity

Angular velocity of the rigid body.

◆ linearVelocity

template<size_t N>
Vector<double, N> CubbyFlow::RigidBodyCollider< N >::linearVelocity

Linear velocity of the rigid body.


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