21 #ifndef HX3D_PHYSICS_2D_MANIFOLD 22 #define HX3D_PHYSICS_2D_MANIFOLD 24 #include "hx3d/physics/2d/colliders/polygon.hpp" 25 #include "hx3d/physics/2d/colliders/circle.hpp" Manifold(const Ptr< Collider > &a, const Ptr< Collider > &b)
Create a manifold.
std::vector< glm::vec2 > contacts
Contact points.
Ptr< Collider > b
Second collider.
friend bool operator<(const Manifold &m1, const Manifold &m2)
Compare two manifolds using their penetration coefficients.
bool disabled
Is the contact disabled ?
void initialize()
Initialize the manifold.
float mixedStaticFriction
Mixed static friction (sf)
float penetration
Penetration coefficient.
bool solve()
Solve the contact.
float mixedDynamicFriction
Mixed dynamic friction (df)
Contact manifold definition.
void positionalCorrection()
Do positional correction on the colliders.
void applyImpulse()
Apply impulses to the colliders.
void infiniteMassCorrection()
Do infinite mass correction on the colliders.
Ptr< Collider > a
First collider.
float mixedRestitution
Mixed restitution (e)
std::shared_ptr< T > Ptr
Quick-typing shared ptr.
glm::vec2 normal
Normal vector.