Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef BT_CONTACT_CONSTRAINT_H
00017 #define BT_CONTACT_CONSTRAINT_H
00018
00019 #include "LinearMath/btVector3.h"
00020 #include "btJacobianEntry.h"
00021 #include "btTypedConstraint.h"
00022 #include "BulletCollision/NarrowPhaseCollision/btPersistentManifold.h"
00023
00025 ATTRIBUTE_ALIGNED16(class) btContactConstraint : public btTypedConstraint
00026 {
00027 protected:
00028
00029 btPersistentManifold m_contactManifold;
00030
00031 public:
00032
00033
00034 btContactConstraint(btPersistentManifold* contactManifold,btRigidBody& rbA,btRigidBody& rbB);
00035
00036 void setContactManifold(btPersistentManifold* contactManifold);
00037
00038 btPersistentManifold* getContactManifold()
00039 {
00040 return &m_contactManifold;
00041 }
00042
00043 const btPersistentManifold* getContactManifold() const
00044 {
00045 return &m_contactManifold;
00046 }
00047
00048 virtual ~btContactConstraint();
00049
00050 virtual void getInfo1 (btConstraintInfo1* info);
00051
00052 virtual void getInfo2 (btConstraintInfo2* info);
00053
00055 virtual void buildJacobian();
00056
00057
00058 };
00059
00061 btScalar resolveSingleCollision(btRigidBody* body1, class btCollisionObject* colObj2, const btVector3& contactPositionWorld,const btVector3& contactNormalOnB, const struct btContactSolverInfo& solverInfo,btScalar distance);
00062
00063
00065 void resolveSingleBilateral(btRigidBody& body1, const btVector3& pos1,
00066 btRigidBody& body2, const btVector3& pos2,
00067 btScalar distance, const btVector3& normal,btScalar& impulse ,btScalar timeStep);
00068
00069
00070
00071 #endif //BT_CONTACT_CONSTRAINT_H