Jet  v1.3.3
Classes | Public Types | Public Member Functions | Protected Member Functions | List of all members
jet::Collider3 Class Referenceabstract

Abstract base class for generic collider object. More...

#include <jet/collider3.h>

Inheritance diagram for jet::Collider3:
jet::ColliderSet3 jet::RigidBodyCollider3

Classes

struct  ColliderQueryResult
 Internal query result structure. More...
 

Public Types

typedef std::function< void(Collider3 *, double, double)> OnBeginUpdateCallback
 Callback function type for update calls. More...
 

Public Member Functions

 Collider3 ()
 Default constructor. More...
 
virtual ~Collider3 ()
 Default destructor. More...
 
virtual Vector3D velocityAt (const Vector3D &point) const =0
 Returns the velocity of the collider at given point. More...
 
void resolveCollision (double radius, double restitutionCoefficient, Vector3D *position, Vector3D *velocity)
 
double frictionCoefficient () const
 Returns friction coefficent. More...
 
void setFrictionCoefficient (double newFrictionCoeffient)
 Sets the friction coefficient. More...
 
const Surface3Ptrsurface () 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...
 

Protected Member Functions

void setSurface (const Surface3Ptr &newSurface)
 Assigns the surface instance from the subclass. More...
 
void getClosestPoint (const Surface3Ptr &surface, const Vector3D &queryPoint, ColliderQueryResult *result) const
 Outputs closest point's information. More...
 
bool isPenetrating (const ColliderQueryResult &colliderPoint, const Vector3D &position, double radius)
 Returns true if given point is in the opposite side of the surface. More...
 

Detailed Description

Abstract base class for generic collider object.

This class contains basic interfaces for colliders. Most of the functionalities are implemented within this class, except the member function Collider3::velocityAt. This class also let the subclasses to provide a Surface3 instance to define collider surface using Collider3::setSurface function.

Member Typedef Documentation

◆ OnBeginUpdateCallback

typedef std::function<void(Collider3*, double, double)> jet::Collider3::OnBeginUpdateCallback

Callback function type for update calls.

This type of callback function will take the collider pointer, current time, and time interval in seconds.

Constructor & Destructor Documentation

◆ Collider3()

jet::Collider3::Collider3 ( )

Default constructor.

◆ ~Collider3()

virtual jet::Collider3::~Collider3 ( )
virtual

Default destructor.

Member Function Documentation

◆ frictionCoefficient()

double jet::Collider3::frictionCoefficient ( ) const

Returns friction coefficent.

◆ getClosestPoint()

void jet::Collider3::getClosestPoint ( const Surface3Ptr surface,
const Vector3D queryPoint,
ColliderQueryResult result 
) const
protected

Outputs closest point's information.

◆ isPenetrating()

bool jet::Collider3::isPenetrating ( const ColliderQueryResult colliderPoint,
const Vector3D position,
double  radius 
)
protected

Returns true if given point is in the opposite side of the surface.

◆ resolveCollision()

void jet::Collider3::resolveCollision ( double  radius,
double  restitutionCoefficient,
Vector3D position,
Vector3D velocity 
)

Resolves collision for given point.

Parameters
radiusRadius of the colliding point.
restitutionCoefficientDefines the restitution effect.
positionInput and output position of the point.
positionInput and output velocity of the point.

◆ setFrictionCoefficient()

void jet::Collider3::setFrictionCoefficient ( double  newFrictionCoeffient)

Sets the friction coefficient.

This function assigns the friction coefficient to the collider. Any negative inputs will be clamped to zero.

◆ setOnBeginUpdateCallback()

void jet::Collider3::setOnBeginUpdateCallback ( const OnBeginUpdateCallback callback)

Sets the callback function to be called when Collider2::update function is invoked.

The callback function takes current simulation time in seconds unit. Use this callback to track any motion or state changes related to this collider.

Parameters
[in]callbackThe callback function.

◆ setSurface()

void jet::Collider3::setSurface ( const Surface3Ptr newSurface)
protected

Assigns the surface instance from the subclass.

◆ surface()

const Surface3Ptr& jet::Collider3::surface ( ) const

Returns the surface instance.

◆ update()

void jet::Collider3::update ( double  currentTimeInSeconds,
double  timeIntervalInSeconds 
)

Updates the collider state.

◆ velocityAt()

virtual Vector3D jet::Collider3::velocityAt ( const Vector3D point) const
pure virtual

Returns the velocity of the collider at given point.

Implemented in jet::RigidBodyCollider3, and jet::ColliderSet3.


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