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_SOLVER_CONSTRAINT_H
00017 #define BT_SOLVER_CONSTRAINT_H
00018
00019 class btRigidBody;
00020 #include "LinearMath/btVector3.h"
00021 #include "LinearMath/btMatrix3x3.h"
00022 #include "btJacobianEntry.h"
00023
00024
00025 #include "btSolverBody.h"
00026
00027
00029 ATTRIBUTE_ALIGNED64 (struct) btSolverConstraint
00030 {
00031 BT_DECLARE_ALIGNED_ALLOCATOR();
00032
00033 btVector3 m_relpos1CrossNormal;
00034 btVector3 m_contactNormal;
00035
00036 btVector3 m_relpos2CrossNormal;
00037
00038
00039 btVector3 m_angularComponentA;
00040 btVector3 m_angularComponentB;
00041
00042 mutable btSimdScalar m_appliedPushImpulse;
00043 mutable btSimdScalar m_appliedImpulse;
00044
00045
00046 btScalar m_friction;
00047 btScalar m_jacDiagABInv;
00048 union
00049 {
00050 int m_numConsecutiveRowsPerKernel;
00051 btScalar m_unusedPadding0;
00052 };
00053
00054 union
00055 {
00056 int m_frictionIndex;
00057 btScalar m_unusedPadding1;
00058 };
00059 union
00060 {
00061 btRigidBody* m_solverBodyA;
00062 int m_companionIdA;
00063 };
00064 union
00065 {
00066 btRigidBody* m_solverBodyB;
00067 int m_companionIdB;
00068 };
00069
00070 union
00071 {
00072 void* m_originalContactPoint;
00073 btScalar m_unusedPadding4;
00074 };
00075
00076 btScalar m_rhs;
00077 btScalar m_cfm;
00078 btScalar m_lowerLimit;
00079 btScalar m_upperLimit;
00080
00081 btScalar m_rhsPenetration;
00082
00083 enum btSolverConstraintType
00084 {
00085 BT_SOLVER_CONTACT_1D = 0,
00086 BT_SOLVER_FRICTION_1D
00087 };
00088 };
00089
00090 typedef btAlignedObjectArray<btSolverConstraint> btConstraintArray;
00091
00092
00093 #endif //BT_SOLVER_CONSTRAINT_H
00094
00095
00096