CubbyFlow::RigidBodyCollider2 Class Referencefinal

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

#include <Core/Collider/RigidBodyCollider2.h>

Inheritance diagram for CubbyFlow::RigidBodyCollider2:
CubbyFlow::Collider2

Classes

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

Public Member Functions

 RigidBodyCollider2 (const Surface2Ptr &surface)
 Constructs a collider with a surface. More...
 
 RigidBodyCollider2 (const Surface2Ptr &surface, const Vector2D &linearVelocity, double angularVelocity)
 Constructs a collider with a surface and other parameters. More...
 
Vector2D VelocityAt (const Vector2D &point) const override
 Returns the velocity of the collider at given point. More...
 
- Public Member Functions inherited from CubbyFlow::Collider2
 Collider2 ()
 Default constructor. More...
 
virtual ~Collider2 ()
 Default destructor. More...
 
void ResolveCollision (double radius, double restitutionCoefficient, Vector2D *position, Vector2D *velocity)
 
double GetFrictionCoefficient () const
 Returns friction coefficient. More...
 
void SetFrictionCoefficient (double newFrictionCoeffient)
 Sets the friction coefficient. More...
 
const Surface2PtrGetSurface () 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 Collider2::update function is invoked. More...
 

Static Public Member Functions

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

Public Attributes

Vector2D linearVelocity
 Linear velocity of the rigid body. More...
 
double angularVelocity = 0.0
 Angular velocity of the rigid body. More...
 

Additional Inherited Members

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

Detailed Description

2-D rigid body collider class.

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

Constructor & Destructor Documentation

◆ RigidBodyCollider2() [1/2]

CubbyFlow::RigidBodyCollider2::RigidBodyCollider2 ( const Surface2Ptr surface)
explicit

Constructs a collider with a surface.

◆ RigidBodyCollider2() [2/2]

CubbyFlow::RigidBodyCollider2::RigidBodyCollider2 ( const Surface2Ptr surface,
const Vector2D linearVelocity,
double  angularVelocity 
)

Constructs a collider with a surface and other parameters.

Member Function Documentation

◆ GetBuilder()

static Builder CubbyFlow::RigidBodyCollider2::GetBuilder ( )
static

Returns builder fox RigidBodyCollider2.

◆ VelocityAt()

Vector2D CubbyFlow::RigidBodyCollider2::VelocityAt ( const Vector2D point) const
overridevirtual

Returns the velocity of the collider at given point.

Implements CubbyFlow::Collider2.

Member Data Documentation

◆ angularVelocity

double CubbyFlow::RigidBodyCollider2::angularVelocity = 0.0

Angular velocity of the rigid body.

◆ linearVelocity

Vector2D CubbyFlow::RigidBodyCollider2::linearVelocity

Linear velocity of the rigid body.


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