Bullet Collision Detection & Physics Library
|
Go to the documentation of this file.
30 m_isSwapped(isSwapped),
31 m_numPerturbationIterations(numPerturbationIterations),
32 m_minimumPointsPerturbationThreshold(minimumPointsPerturbationThreshold)
61 bool hasCollision =
false;
75 btVector3 vtxInPlane = convexInPlaneTrans(vtx);
76 btScalar distance = (planeNormal.
dot(vtxInPlane) - planeConstant);
78 btVector3 vtxInPlaneProjected = vtxInPlane - distance * planeNormal;
104 bool hasCollision =
false;
113 btVector3 vtxInPlane = convexInPlaneTrans(vtx);
114 btScalar distance = (planeNormal.
dot(vtxInPlane) - planeConstant);
116 btVector3 vtxInPlaneProjected = vtxInPlane - distance * planeNormal;
142 if (perturbeAngle > angleLimit)
143 perturbeAngle = angleLimit;
150 collideSingleContact(rotq.inverse() * perturbeRot * rotq, body0Wrap, body1Wrap, dispatchInfo, resultOut);
const btScalar & getPlaneConstant() const
btCollisionObject can be used to manage collision detection objects.
void collideSingleContact(const btQuaternion &perturbeRot, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
void btPlaneSpace1(const T &n, T &p, T &q)
The btQuaternion implements quaternion to perform linear algebra rotations in combination with btMatr...
btDispatcher * m_dispatcher
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btScalar dot(const btVector3 &v) const
Return the dot product.
int getNumContacts() const
const btTransform & getWorldTransform() const
btCollisionAlgorithm is an collision interface that is compatible with the Broadphase and btDispatche...
virtual btPersistentManifold * getNewManifold(const btCollisionObject *b0, const btCollisionObject *b1)=0
virtual bool needsCollision(const btCollisionObject *body0, const btCollisionObject *body1)=0
int m_minimumPointsPerturbationThreshold
virtual btVector3 localGetSupportingVertex(const btVector3 &vec) const =0
btConvexPlaneCollisionAlgorithm(btPersistentManifold *mf, const btCollisionAlgorithmConstructionInfo &ci, const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, bool isSwapped, int numPerturbationIterations, int minimumPointsPerturbationThreshold)
btManifoldResult is a helper class to manage contact results.
virtual void releaseManifold(btPersistentManifold *manifold)=0
const btCollisionShape * getCollisionShape() const
const btPersistentManifold * getPersistentManifold() const
const btVector3 & getPlaneNormal() const
int m_numPerturbationIterations
The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with...
const btCollisionObject * getCollisionObject() const
btVector3 can be used to represent 3D points and vectors.
btPersistentManifold is a contact point cache, it stays persistent as long as objects are overlapping...
void setPersistentManifold(btPersistentManifold *manifoldPtr)
virtual btScalar getAngularMotionDisc() const
getAngularMotionDisc returns the maximum radius needed for Conservative Advancement to handle time-of...
The btConvexShape is an abstract shape interface, implemented by all convex shapes such as btBoxShape...
virtual btScalar calculateTimeOfImpact(btCollisionObject *body0, btCollisionObject *body1, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
virtual void processCollision(const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap, const btDispatcherInfo &dispatchInfo, btManifoldResult *resultOut)
The btStaticPlaneShape simulates an infinite non-moving (static) collision plane.
void refreshContactPoints()
bool isPolyhedral() const
virtual void addContactPoint(const btVector3 &normalOnBInWorld, const btVector3 &pointInWorld, btScalar depth)
btScalar gContactBreakingThreshold
virtual ~btConvexPlaneCollisionAlgorithm()
btScalar getContactBreakingThreshold() const
btScalar m_closestPointDistanceThreshold
btPersistentManifold * m_manifoldPtr