Go to the documentation of this file.
7 #ifndef INCLUDE_JET_COLLIDER3_H_
8 #define INCLUDE_JET_COLLIDER3_H_
32 typedef std::function<void(
Collider3*,
double,
double)>
54 double restitutionCoefficient,
73 void update(
double currentTimeInSeconds,
double timeIntervalInSeconds);
113 double _frictionCoeffient = 0.0;
122 #endif // INCLUDE_JET_COLLIDER3_H_
void setOnBeginUpdateCallback(const OnBeginUpdateCallback &callback)
Sets the callback function to be called when Collider2::update function is invoked.
Abstract base class for generic collider object.
Definition: collider3.h:24
Collider3()
Default constructor.
Vector3D normal
Definition: collider3.h:92
void getClosestPoint(const Surface3Ptr &surface, const Vector3D &queryPoint, ColliderQueryResult *result) const
Outputs closest point's information.
const Surface3Ptr & surface() const
Returns the surface instance.
void resolveCollision(double radius, double restitutionCoefficient, Vector3D *position, Vector3D *velocity)
Internal query result structure.
Definition: collider3.h:89
std::shared_ptr< Surface3 > Surface3Ptr
Shared pointer for the Surface3 type.
Definition: surface3.h:109
double distance
Definition: collider3.h:90
Definition: advection_solver2.h:18
double frictionCoefficient() const
Returns friction coefficent.
Vector3D velocity
Definition: collider3.h:93
void setSurface(const Surface3Ptr &newSurface)
Assigns the surface instance from the subclass.
std::function< void(Collider3 *, double, double)> OnBeginUpdateCallback
Callback function type for update calls.
Definition: collider3.h:33
Vector3D point
Definition: collider3.h:91
3-D vector class.
Definition: vector3.h:25
void setFrictionCoefficient(double newFrictionCoeffient)
Sets the friction coefficient.
virtual Vector3D velocityAt(const Vector3D &point) const =0
Returns the velocity of the collider at given point.
std::shared_ptr< Collider3 > Collider3Ptr
Shared pointer type for the Collider2.
Definition: collider3.h:118
void update(double currentTimeInSeconds, double timeIntervalInSeconds)
Updates the collider state.
bool isPenetrating(const ColliderQueryResult &colliderPoint, const Vector3D &position, double radius)
Returns true if given point is in the opposite side of the surface.
virtual ~Collider3()
Default destructor.