Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h')
-rw-r--r--extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h62
1 files changed, 42 insertions, 20 deletions
diff --git a/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h b/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h
index 2c71360c5b9..867d62a301d 100644
--- a/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h
+++ b/extern/bullet2/src/BulletDynamics/ConstraintSolver/btSolverConstraint.h
@@ -19,40 +19,64 @@ subject to the following restrictions:
class btRigidBody;
#include "LinearMath/btVector3.h"
#include "LinearMath/btMatrix3x3.h"
+#include "btJacobianEntry.h"
//#define NO_FRICTION_TANGENTIALS 1
+#include "btSolverBody.h"
+
///1D constraint along a normal axis between bodyA and bodyB. It can be combined to solve contact and friction constraints.
ATTRIBUTE_ALIGNED16 (struct) btSolverConstraint
{
BT_DECLARE_ALIGNED_ALLOCATOR();
- btVector3 m_relpos1CrossNormal;
- btVector3 m_contactNormal;
-
- btVector3 m_relpos2CrossNormal;
- btVector3 m_angularComponentA;
+ btVector3 m_relpos1CrossNormal;
+ btVector3 m_contactNormal;
- btVector3 m_angularComponentB;
+ btVector3 m_relpos2CrossNormal;
+ //btVector3 m_contactNormal2;//usually m_contactNormal2 == -m_contactNormal
- mutable btScalar m_appliedPushImpulse;
+ btVector3 m_angularComponentA;
+ btVector3 m_angularComponentB;
+
+ mutable btSimdScalar m_appliedPushImpulse;
+ mutable btSimdScalar m_appliedImpulse;
- mutable btScalar m_appliedImpulse;
- int m_solverBodyIdA;
- int m_solverBodyIdB;
btScalar m_friction;
- btScalar m_restitution;
btScalar m_jacDiagABInv;
- btScalar m_penetration;
-
+ union
+ {
+ int m_numConsecutiveRowsPerKernel;
+ btScalar m_unusedPadding0;
+ };
+ union
+ {
+ int m_frictionIndex;
+ btScalar m_unusedPadding1;
+ };
+ union
+ {
+ int m_solverBodyIdA;
+ btScalar m_unusedPadding2;
+ };
+ union
+ {
+ int m_solverBodyIdB;
+ btScalar m_unusedPadding3;
+ };
- int m_constraintType;
- int m_frictionIndex;
- void* m_originalContactPoint;
- int m_unusedPadding[1];
+ union
+ {
+ void* m_originalContactPoint;
+ btScalar m_unusedPadding4;
+ };
+ btScalar m_rhs;
+ btScalar m_cfm;
+ btScalar m_lowerLimit;
+ btScalar m_upperLimit;
enum btSolverConstraintType
{
@@ -61,9 +85,7 @@ ATTRIBUTE_ALIGNED16 (struct) btSolverConstraint
};
};
-
-
-
+typedef btAlignedObjectArray<btSolverConstraint> btConstraintArray;
#endif //BT_SOLVER_CONSTRAINT_H