Class CollisionDetection
Defined in File CollisionDetection.h
Nested Relationships
Inheritance Relationships
Base Type
public GenParam::ParameterObject
Derived Type
public PBD::DistanceFieldCollisionDetection
(Class DistanceFieldCollisionDetection)
Class Documentation
-
class CollisionDetection : public GenParam::ParameterObject
Subclassed by PBD::DistanceFieldCollisionDetection
Public Types
-
typedef void (*ContactCallbackFunction)(const unsigned int contactType, const unsigned int bodyIndex1, const unsigned int bodyIndex2, const Vector3r &cp1, const Vector3r &cp2, const Vector3r &normal, const Real dist, const Real restitutionCoeff, const Real frictionCoeff, void *userData)
-
typedef void (*SolidContactCallbackFunction)(const unsigned int contactType, const unsigned int bodyIndex1, const unsigned int bodyIndex2, const unsigned int tetIndex, const Vector3r &bary, const Vector3r &cp1, const Vector3r &cp2, const Vector3r &normal, const Real dist, const Real restitutionCoeff, const Real frictionCoeff, void *userData)
Public Functions
-
CollisionDetection()
-
virtual ~CollisionDetection()
-
void init()
-
void cleanup()
-
inline Real getTolerance() const
-
inline void setTolerance(Real val)
-
void addRigidBodyContact(const unsigned int rbIndex1, const unsigned int rbIndex2, const Vector3r &cp1, const Vector3r &cp2, const Vector3r &normal, const Real dist, const Real restitutionCoeff, const Real frictionCoeff)
-
void addParticleRigidBodyContact(const unsigned int particleIndex, const unsigned int rbIndex, const Vector3r &cp1, const Vector3r &cp2, const Vector3r &normal, const Real dist, const Real restitutionCoeff, const Real frictionCoeff)
-
void addParticleSolidContact(const unsigned int particleIndex, const unsigned int solidIndex, const unsigned int tetIndex, const Vector3r &bary, const Vector3r &cp1, const Vector3r &cp2, const Vector3r &normal, const Real dist, const Real restitutionCoeff, const Real frictionCoeff)
-
virtual void addCollisionObject(const unsigned int bodyIndex, const unsigned int bodyType)
-
inline std::vector<CollisionObject*> &getCollisionObjects()
-
virtual void collisionDetection(SimulationModel &model) = 0
-
void setContactCallback(CollisionDetection::ContactCallbackFunction val, void *userData)
-
void setSolidContactCallback(CollisionDetection::SolidContactCallbackFunction val, void *userData)
-
void updateAABBs(SimulationModel &model)
-
void updateAABB(SimulationModel &model, CollisionDetection::CollisionObject *co)
Public Static Attributes
-
static int CONTACT_TOLERANCE = -1
-
static const unsigned int RigidBodyContactType = 0
-
static const unsigned int ParticleContactType = 1
-
static const unsigned int ParticleRigidBodyContactType = 2
-
static const unsigned int ParticleSolidContactType = 3
Protected Attributes
-
Real m_tolerance
-
ContactCallbackFunction m_contactCB
-
SolidContactCallbackFunction m_solidContactCB
-
void *m_contactCBUserData
-
void *m_solidContactCBUserData
-
std::vector<CollisionObject*> m_collisionObjects
-
struct CollisionObject
Subclassed by PBD::CollisionDetection::CollisionObjectWithoutGeometry, PBD::DistanceFieldCollisionDetection::DistanceFieldCollisionObject
-
struct CollisionObjectWithoutGeometry : public PBD::CollisionDetection::CollisionObject
-
typedef void (*ContactCallbackFunction)(const unsigned int contactType, const unsigned int bodyIndex1, const unsigned int bodyIndex2, const Vector3r &cp1, const Vector3r &cp2, const Vector3r &normal, const Real dist, const Real restitutionCoeff, const Real frictionCoeff, void *userData)