/* Copyright (C) 2011 Erwin Coumans & Charlie C * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment in the product documentation would be * appreciated but is not required. * 2. Altered source versions must be plainly marked as such, and must not be * misrepresented as being the original software. * 3. This notice may not be removed or altered from any source distribution. */ // Auto generated from Bullet/Extras/HeaderGenerator/bulletGenerate.py #ifndef __BULLET_H__ #define __BULLET_H__ namespace Bullet { // put an empty struct in the case typedef struct bInvalidHandle { int unused; }bInvalidHandle; class PointerArray; class btPhysicsSystem; class ListBase; class btVector3FloatData; class btVector3DoubleData; class btMatrix3x3FloatData; class btMatrix3x3DoubleData; class btTransformFloatData; class btTransformDoubleData; class btBvhSubtreeInfoData; class btOptimizedBvhNodeFloatData; class btOptimizedBvhNodeDoubleData; class btQuantizedBvhNodeData; class btQuantizedBvhFloatData; class btQuantizedBvhDoubleData; class btCollisionShapeData; class btStaticPlaneShapeData; class btConvexInternalShapeData; class btPositionAndRadius; class btMultiSphereShapeData; class btIntIndexData; class btShortIntIndexData; class btShortIntIndexTripletData; class btCharIndexTripletData; class btMeshPartData; class btStridingMeshInterfaceData; class btTriangleMeshShapeData; class btScaledTriangleMeshShapeData; class btCompoundShapeChildData; class btCompoundShapeData; class btCylinderShapeData; class btConeShapeData; class btCapsuleShapeData; class btTriangleInfoData; class btTriangleInfoMapData; class btGImpactMeshShapeData; class btConvexHullShapeData; class btCollisionObjectDoubleData; class btCollisionObjectFloatData; class btDynamicsWorldDoubleData; class btDynamicsWorldFloatData; class btRigidBodyFloatData; class btRigidBodyDoubleData; class btConstraintInfo1; class btTypedConstraintFloatData; class btTypedConstraintData; class btTypedConstraintDoubleData; class btPoint2PointConstraintFloatData; class btPoint2PointConstraintDoubleData2; class btPoint2PointConstraintDoubleData; class btHingeConstraintDoubleData; class btHingeConstraintFloatData; class btHingeConstraintDoubleData2; class btConeTwistConstraintDoubleData; class btConeTwistConstraintData; class btGeneric6DofConstraintData; class btGeneric6DofConstraintDoubleData2; class btGeneric6DofSpringConstraintData; class btGeneric6DofSpringConstraintDoubleData2; class btSliderConstraintData; class btSliderConstraintDoubleData; class btGearConstraintFloatData; class btGearConstraintDoubleData; class btContactSolverInfoDoubleData; class btContactSolverInfoFloatData; class SoftBodyMaterialData; class SoftBodyNodeData; class SoftBodyLinkData; class SoftBodyFaceData; class SoftBodyTetraData; class SoftRigidAnchorData; class SoftBodyConfigData; class SoftBodyPoseData; class SoftBodyClusterData; class btSoftBodyJointData; class btSoftBodyFloatData; // -------------------------------------------------- // class PointerArray { public: int m_size; int m_capacity; void *m_data; }; // -------------------------------------------------- // class btPhysicsSystem { public: PointerArray m_collisionShapes; PointerArray m_collisionObjects; PointerArray m_constraints; }; // -------------------------------------------------- // class ListBase { public: void *first; void *last; }; // -------------------------------------------------- // class btVector3FloatData { public: float m_floats[4]; }; // -------------------------------------------------- // class btVector3DoubleData { public: double m_floats[4]; }; // -------------------------------------------------- // class btMatrix3x3FloatData { public: btVector3FloatData m_el[3]; }; // -------------------------------------------------- // class btMatrix3x3DoubleData { public: btVector3DoubleData m_el[3]; }; // -------------------------------------------------- // class btTransformFloatData { public: btMatrix3x3FloatData m_basis; btVector3FloatData m_origin; }; // -------------------------------------------------- // class btTransformDoubleData { public: btMatrix3x3DoubleData m_basis; btVector3DoubleData m_origin; }; // -------------------------------------------------- // class btBvhSubtreeInfoData { public: int m_rootNodeIndex; int m_subtreeSize; short m_quantizedAabbMin[3]; short m_quantizedAabbMax[3]; }; // -------------------------------------------------- // class btOptimizedBvhNodeFloatData { public: btVector3FloatData m_aabbMinOrg; btVector3FloatData m_aabbMaxOrg; int m_escapeIndex; int m_subPart; int m_triangleIndex; char m_pad[4]; }; // -------------------------------------------------- // class btOptimizedBvhNodeDoubleData { public: btVector3DoubleData m_aabbMinOrg; btVector3DoubleData m_aabbMaxOrg; int m_escapeIndex; int m_subPart; int m_triangleIndex; char m_pad[4]; }; // -------------------------------------------------- // class btQuantizedBvhNodeData { public: short m_quantizedAabbMin[3]; short m_quantizedAabbMax[3]; int m_escapeIndexOrTriangleIndex; }; // -------------------------------------------------- // class btQuantizedBvhFloatData { public: btVector3FloatData m_bvhAabbMin; btVector3FloatData m_bvhAabbMax; btVector3FloatData m_bvhQuantization; int m_curNodeIndex; int m_useQuantization; int m_numContiguousLeafNodes; int m_numQuantizedContiguousNodes; btOptimizedBvhNodeFloatData *m_contiguousNodesPtr; btQuantizedBvhNodeData *m_quantizedContiguousNodesPtr; btBvhSubtreeInfoData *m_subTreeInfoPtr; int m_traversalMode; int m_numSubtreeHeaders; }; // -------------------------------------------------- // class btQuantizedBvhDoubleData { public: btVector3DoubleData m_bvhAabbMin; btVector3DoubleData m_bvhAabbMax; btVector3DoubleData m_bvhQuantization; int m_curNodeIndex; int m_useQuantization; int m_numContiguousLeafNodes; int m_numQuantizedContiguousNodes; btOptimizedBvhNodeDoubleData *m_contiguousNodesPtr; btQuantizedBvhNodeData *m_quantizedContiguousNodesPtr; int m_traversalMode; int m_numSubtreeHeaders; btBvhSubtreeInfoData *m_subTreeInfoPtr; }; // -------------------------------------------------- // class btCollisionShapeData { public: char *m_name; int m_shapeType; char m_padding[4]; }; // -------------------------------------------------- // class btStaticPlaneShapeData { public: btCollisionShapeData m_collisionShapeData; btVector3FloatData m_localScaling; btVector3FloatData m_planeNormal; float m_planeConstant; char m_pad[4]; }; // -------------------------------------------------- // class btConvexInternalShapeData { public: btCollisionShapeData m_collisionShapeData; btVector3FloatData m_localScaling; btVector3FloatData m_implicitShapeDimensions; float m_collisionMargin; int m_padding; }; // -------------------------------------------------- // class btPositionAndRadius { public: btVector3FloatData m_pos; float m_radius; }; // -------------------------------------------------- // class btMultiSphereShapeData { public: btConvexInternalShapeData m_convexInternalShapeData; btPositionAndRadius *m_localPositionArrayPtr; int m_localPositionArraySize; char m_padding[4]; }; // -------------------------------------------------- // class btIntIndexData { public: int m_value; }; // -------------------------------------------------- // class btShortIntIndexData { public: short m_value; char m_pad[2]; }; // -------------------------------------------------- // class btShortIntIndexTripletData { public: short m_values[3]; char m_pad[2]; }; // -------------------------------------------------- // class btCharIndexTripletData { public: char m_values[3]; char m_pad; }; // -------------------------------------------------- // class btMeshPartData { public: btVector3FloatData *m_vertices3f; btVector3DoubleData *m_vertices3d; btIntIndexData *m_indices32; btShortIntIndexTripletData *m_3indices16; btCharIndexTripletData *m_3indices8; btShortIntIndexData *m_indices16; int m_numTriangles; int m_numVertices; }; // -------------------------------------------------- // class btStridingMeshInterfaceData { public: btMeshPartData *m_meshPartsPtr; btVector3FloatData m_scaling; int m_numMeshParts; char m_padding[4]; }; // -------------------------------------------------- // class btTriangleMeshShapeData { public: btCollisionShapeData m_collisionShapeData; btStridingMeshInterfaceData m_meshInterface; btQuantizedBvhFloatData *m_quantizedFloatBvh; btQuantizedBvhDoubleData *m_quantizedDoubleBvh; btTriangleInfoMapData *m_triangleInfoMap; float m_collisionMargin; char m_pad3[4]; }; // -------------------------------------------------- // class btScaledTriangleMeshShapeData { public: btTriangleMeshShapeData m_trimeshShapeData; btVector3FloatData m_localScaling; }; // -------------------------------------------------- // class btCompoundShapeChildData { public: btTransformFloatData m_transform; btCollisionShapeData *m_childShape; int m_childShapeType; float m_childMargin; }; // -------------------------------------------------- // class btCompoundShapeData { public: btCollisionShapeData m_collisionShapeData; btCompoundShapeChildData *m_childShapePtr; int m_numChildShapes; float m_collisionMargin; }; // -------------------------------------------------- // class btCylinderShapeData { public: btConvexInternalShapeData m_convexInternalShapeData; int m_upAxis; char m_padding[4]; }; // -------------------------------------------------- // class btConeShapeData { public: btConvexInternalShapeData m_convexInternalShapeData; int m_upIndex; char m_padding[4]; }; // -------------------------------------------------- // class btCapsuleShapeData { public: btConvexInternalShapeData m_convexInternalShapeData; int m_upAxis; char m_padding[4]; }; // -------------------------------------------------- // class btTriangleInfoData { public: int m_flags; float m_edgeV0V1Angle; float m_edgeV1V2Angle; float m_edgeV2V0Angle; }; // -------------------------------------------------- // class btTriangleInfoMapData { public: int *m_hashTablePtr; int *m_nextPtr; btTriangleInfoData *m_valueArrayPtr; int *m_keyArrayPtr; float m_convexEpsilon; float m_planarEpsilon; float m_equalVertexThreshold; float m_edgeDistanceThreshold; float m_zeroAreaThreshold; int m_nextSize; int m_hashTableSize; int m_numValues; int m_numKeys; char m_padding[4]; }; // -------------------------------------------------- // class btGImpactMeshShapeData { public: btCollisionShapeData m_collisionShapeData; btStridingMeshInterfaceData m_meshInterface; btVector3FloatData m_localScaling; float m_collisionMargin; int m_gimpactSubType; }; // -------------------------------------------------- // class btConvexHullShapeData { public: btConvexInternalShapeData m_convexInternalShapeData; btVector3FloatData *m_unscaledPointsFloatPtr; btVector3DoubleData *m_unscaledPointsDoublePtr; int m_numUnscaledPoints; char m_padding3[4]; }; // -------------------------------------------------- // class btCollisionObjectDoubleData { public: void *m_broadphaseHandle; void *m_collisionShape; btCollisionShapeData *m_rootCollisionShape; char *m_name; btTransformDoubleData m_worldTransform; btTransformDoubleData m_interpolationWorldTransform; btVector3DoubleData m_interpolationLinearVelocity; btVector3DoubleData m_interpolationAngularVelocity; btVector3DoubleData m_anisotropicFriction; double m_contactProcessingThreshold; double m_deactivationTime; double m_friction; double m_rollingFriction; double m_restitution; double m_hitFraction; double m_ccdSweptSphereRadius; double m_ccdMotionThreshold; int m_hasAnisotropicFriction; int m_collisionFlags; int m_islandTag1; int m_companionId; int m_activationState1; int m_internalType; int m_checkCollideWith; char m_padding[4]; }; // -------------------------------------------------- // class btCollisionObjectFloatData { public: void *m_broadphaseHandle; void *m_collisionShape; btCollisionShapeData *m_rootCollisionShape; char *m_name; btTransformFloatData m_worldTransform; btTransformFloatData m_interpolationWorldTransform; btVector3FloatData m_interpolationLinearVelocity; btVector3FloatData m_interpolationAngularVelocity; btVector3FloatData m_anisotropicFriction; float m_contactProcessingThreshold; float m_deactivationTime; float m_friction; float m_rollingFriction; float m_restitution; float m_hitFraction; float m_ccdSweptSphereRadius; float m_ccdMotionThreshold; int m_hasAnisotropicFriction; int m_collisionFlags; int m_islandTag1; int m_companionId; int m_activationState1; int m_internalType; int m_checkCollideWith; char m_padding[4]; }; // -------------------------------------------------- // class btDynamicsWorldDoubleData { public: btContactSolverInfoDoubleData m_solverInfo; btVector3DoubleData m_gravity; }; // -------------------------------------------------- // class btDynamicsWorldFloatData { public: btContactSolverInfoFloatData m_solverInfo; btVector3FloatData m_gravity; }; // -------------------------------------------------- // class btRigidBodyFloatData { public: btCollisionObjectFloatData m_collisionObjectData; btMatrix3x3FloatData m_invInertiaTensorWorld; btVector3FloatData m_linearVelocity; btVector3FloatData m_angularVelocity; btVector3FloatData m_angularFactor; btVector3FloatData m_linearFactor; btVector3FloatData m_gravity; btVector3FloatData m_gravity_acceleration; btVector3FloatData m_invInertiaLocal; btVector3FloatData m_totalForce; btVector3FloatData m_totalTorque; float m_inverseMass; float m_linearDamping; float m_angularDamping; float m_additionalDampingFactor; float m_additionalLinearDampingThresholdSqr; float m_additionalAngularDampingThresholdSqr; float m_additionalAngularDampingFactor; float m_linearSleepingThreshold; float m_angularSleepingThreshold; int m_additionalDamping; }; // -------------------------------------------------- // class btRigidBodyDoubleData { public: btCollisionObjectDoubleData m_collisionObjectData; btMatrix3x3DoubleData m_invInertiaTensorWorld; btVector3DoubleData m_linearVelocity; btVector3DoubleData m_angularVelocity; btVector3DoubleData m_angularFactor; btVector3DoubleData m_linearFactor; btVector3DoubleData m_gravity; btVector3DoubleData m_gravity_acceleration; btVector3DoubleData m_invInertiaLocal; btVector3DoubleData m_totalForce; btVector3DoubleData m_totalTorque; double m_inverseMass; double m_linearDamping; double m_angularDamping; double m_additionalDampingFactor; double m_additionalLinearDampingThresholdSqr; double m_additionalAngularDampingThresholdSqr; double m_additionalAngularDampingFactor; double m_linearSleepingThreshold; double m_angularSleepingThreshold; int m_additionalDamping; char m_padding[4]; }; // -------------------------------------------------- // class btConstraintInfo1 { public: int m_numConstraintRows; int nub; }; // -------------------------------------------------- // class btTypedConstraintFloatData { public: btRigidBodyFloatData *m_rbA; btRigidBodyFloatData *m_rbB; char *m_name; int m_objectType; int m_userConstraintType; int m_userConstraintId; int m_needsFeedback; float m_appliedImpulse; float m_dbgDrawSize; int m_disableCollisionsBetweenLinkedBodies; int m_overrideNumSolverIterations; float m_breakingImpulseThreshold; int m_isEnabled; }; // -------------------------------------------------- // class btTypedConstraintData { public: bInvalidHandle *m_rbA; bInvalidHandle *m_rbB; char *m_name; int m_objectType; int m_userConstraintType; int m_userConstraintId; int m_needsFeedback; float m_appliedImpulse; float m_dbgDrawSize; int m_disableCollisionsBetweenLinkedBodies; int m_overrideNumSolverIterations; float m_breakingImpulseThreshold; int m_isEnabled; }; // -------------------------------------------------- // class btTypedConstraintDoubleData { public: btRigidBodyDoubleData *m_rbA; btRigidBodyDoubleData *m_rbB; char *m_name; int m_objectType; int m_userConstraintType; int m_userConstraintId; int m_needsFeedback; double m_appliedImpulse; double m_dbgDrawSize; int m_disableCollisionsBetweenLinkedBodies; int m_overrideNumSolverIterations; double m_breakingImpulseThreshold; int m_isEnabled; char padding[4]; }; // -------------------------------------------------- // class btPoint2PointConstraintFloatData { public: btTypedConstraintData m_typeConstraintData; btVector3FloatData m_pivotInA; btVector3FloatData m_pivotInB; }; // -------------------------------------------------- // class btPoint2PointConstraintDoubleData2 { public: btTypedConstraintDoubleData m_typeConstraintData; btVector3DoubleData m_pivotInA; btVector3DoubleData m_pivotInB; }; // -------------------------------------------------- // class btPoint2PointConstraintDoubleData { public: btTypedConstraintData m_typeConstraintData; btVector3DoubleData m_pivotInA; btVector3DoubleData m_pivotInB; }; // -------------------------------------------------- // class btHingeConstraintDoubleData { public: btTypedConstraintData m_typeConstraintData; btTransformDoubleData m_rbAFrame; btTransformDoubleData m_rbBFrame; int m_useReferenceFrameA; int m_angularOnly; int m_enableAngularMotor; float m_motorTargetVelocity; float m_maxMotorImpulse; float m_lowerLimit; float m_upperLimit; float m_limitSoftness; float m_biasFactor; float m_relaxationFactor; }; // -------------------------------------------------- // class btHingeConstraintFloatData { public: btTypedConstraintData m_typeConstraintData; btTransformFloatData m_rbAFrame; btTransformFloatData m_rbBFrame; int m_useReferenceFrameA; int m_angularOnly; int m_enableAngularMotor; float m_motorTargetVelocity; float m_maxMotorImpulse; float m_lowerLimit; float m_upperLimit; float m_limitSoftness; float m_biasFactor; float m_relaxationFactor; }; // -------------------------------------------------- // class btHingeConstraintDoubleData2 { public: btTypedConstraintDoubleData m_typeConstraintData; btTransformDoubleData m_rbAFrame; btTransformDoubleData m_rbBFrame; int m_useReferenceFrameA; int m_angularOnly; int m_enableAngularMotor; double m_motorTargetVelocity; double m_maxMotorImpulse; double m_lowerLimit; double m_upperLimit; double m_limitSoftness; double m_biasFactor; double m_relaxationFactor; char m_padding1[4]; }; // -------------------------------------------------- // class btConeTwistConstraintDoubleData { public: btTypedConstraintDoubleData m_typeConstraintData; btTransformDoubleData m_rbAFrame; btTransformDoubleData m_rbBFrame; double m_swingSpan1; double m_swingSpan2; double m_twistSpan; double m_limitSoftness; double m_biasFactor; double m_relaxationFactor; double m_damping; }; // -------------------------------------------------- // class btConeTwistConstraintData { public: btTypedConstraintData m_typeConstraintData; btTransformFloatData m_rbAFrame; btTransformFloatData m_rbBFrame; float m_swingSpan1; float m_swingSpan2; float m_twistSpan; float m_limitSoftness; float m_biasFactor; float m_relaxationFactor; float m_damping; char m_pad[4]; }; // -------------------------------------------------- // class btGeneric6DofConstraintData { public: btTypedConstraintData m_typeConstraintData; btTransformFloatData m_rbAFrame; btTransformFloatData m_rbBFrame; btVector3FloatData m_linearUpperLimit; btVector3FloatData m_linearLowerLimit; btVector3FloatData m_angularUpperLimit; btVector3FloatData m_angularLowerLimit; int m_useLinearReferenceFrameA; int m_useOffsetForConstraintFrame; }; // -------------------------------------------------- // class btGeneric6DofConstraintDoubleData2 { public: btTypedConstraintDoubleData m_typeConstraintData; btTransformDoubleData m_rbAFrame; btTransformDoubleData m_rbBFrame; btVector3DoubleData m_linearUpperLimit; btVector3DoubleData m_linearLowerLimit; btVector3DoubleData m_angularUpperLimit; btVector3DoubleData m_angularLowerLimit; int m_useLinearReferenceFrameA; int m_useOffsetForConstraintFrame; }; // -------------------------------------------------- // class btGeneric6DofSpringConstraintData { public: btGeneric6DofConstraintData m_6dofData; int m_springEnabled[6]; float m_equilibriumPoint[6]; float m_springStiffness[6]; float m_springDamping[6]; }; // -------------------------------------------------- // class btGeneric6DofSpringConstraintDoubleData2 { public: btGeneric6DofConstraintDoubleData2 m_6dofData; int m_springEnabled[6]; double m_equilibriumPoint[6]; double m_springStiffness[6]; double m_springDamping[6]; }; // -------------------------------------------------- // class btSliderConstraintData { public: btTypedConstraintData m_typeConstraintData; btTransformFloatData m_rbAFrame; btTransformFloatData m_rbBFrame; float m_linearUpperLimit; float m_linearLowerLimit; float m_angularUpperLimit; float m_angularLowerLimit; int m_useLinearReferenceFrameA; int m_useOffsetForConstraintFrame; }; // -------------------------------------------------- // class btSliderConstraintDoubleData { public: btTypedConstraintDoubleData m_typeConstraintData; btTransformDoubleData m_rbAFrame; btTransformDoubleData m_rbBFrame; double m_linearUpperLimit; double m_linearLowerLimit; double m_angularUpperLimit; double m_angularLowerLimit; int m_useLinearReferenceFrameA; int m_useOffsetForConstraintFrame; }; // -------------------------------------------------- // class btGearConstraintFloatData { public: btTypedConstraintFloatData m_typeConstraintData; btVector3FloatData m_axisInA; btVector3FloatData m_axisInB; float m_ratio; char m_padding[4]; }; // -------------------------------------------------- // class btGearConstraintDoubleData { public: btTypedConstraintDoubleData m_typeConstraintData; btVector3DoubleData m_axisInA; btVector3DoubleData m_axisInB; double m_ratio; }; // -------------------------------------------------- // class btContactSolverInfoDoubleData { public: double m_tau; double m_damping; double m_friction; double m_timeStep; double m_restitution; double m_maxErrorReduction; double m_sor; double m_erp; double m_erp2; double m_globalCfm; double m_splitImpulsePenetrationThreshold; double m_splitImpulseTurnErp; double m_linearSlop; double m_warmstartingFactor; double m_maxGyroscopicForce; double m_singleAxisRollingFrictionThreshold; int m_numIterations; int m_solverMode; int m_restingContactRestitutionThreshold; int m_minimumSolverBatchSize; int m_splitImpulse; char m_padding[4]; }; // -------------------------------------------------- // class btContactSolverInfoFloatData { public: float m_tau; float m_damping; float m_friction; float m_timeStep; float m_restitution; float m_maxErrorReduction; float m_sor; float m_erp; float m_erp2; float m_globalCfm; float m_splitImpulsePenetrationThreshold; float m_splitImpulseTurnErp; float m_linearSlop; float m_warmstartingFactor; float m_maxGyroscopicForce; float m_singleAxisRollingFrictionThreshold; int m_numIterations; int m_solverMode; int m_restingContactRestitutionThreshold; int m_minimumSolverBatchSize; int m_splitImpulse; char m_padding[4]; }; // -------------------------------------------------- // class SoftBodyMaterialData { public: float m_linearStiffness; float m_angularStiffness; float m_volumeStiffness; int m_flags; }; // -------------------------------------------------- // class SoftBodyNodeData { public: SoftBodyMaterialData *m_material; btVector3FloatData m_position; btVector3FloatData m_previousPosition; btVector3FloatData m_velocity; btVector3FloatData m_accumulatedForce; btVector3FloatData m_normal; float m_inverseMass; float m_area; int m_attach; int m_pad; }; // -------------------------------------------------- // class SoftBodyLinkData { public: SoftBodyMaterialData *m_material; int m_nodeIndices[2]; float m_restLength; int m_bbending; }; // -------------------------------------------------- // class SoftBodyFaceData { public: btVector3FloatData m_normal; SoftBodyMaterialData *m_material; int m_nodeIndices[3]; float m_restArea; }; // -------------------------------------------------- // class SoftBodyTetraData { public: btVector3FloatData m_c0[4]; SoftBodyMaterialData *m_material; int m_nodeIndices[4]; float m_restVolume; float m_c1; float m_c2; int m_pad; }; // -------------------------------------------------- // class SoftRigidAnchorData { public: btMatrix3x3FloatData m_c0; btVector3FloatData m_c1; btVector3FloatData m_localFrame; bInvalidHandle *m_rigidBody; int m_nodeIndex; float m_c2; }; // -------------------------------------------------- // class SoftBodyConfigData { public: int m_aeroModel; float m_baumgarte; float m_damping; float m_drag; float m_lift; float m_pressure; float m_volume; float m_dynamicFriction; float m_poseMatch; float m_rigidContactHardness; float m_kineticContactHardness; float m_softContactHardness; float m_anchorHardness; float m_softRigidClusterHardness; float m_softKineticClusterHardness; float m_softSoftClusterHardness; float m_softRigidClusterImpulseSplit; float m_softKineticClusterImpulseSplit; float m_softSoftClusterImpulseSplit; float m_maxVolume; float m_timeScale; int m_velocityIterations; int m_positionIterations; int m_driftIterations; int m_clusterIterations; int m_collisionFlags; }; // -------------------------------------------------- // class SoftBodyPoseData { public: btMatrix3x3FloatData m_rot; btMatrix3x3FloatData m_scale; btMatrix3x3FloatData m_aqq; btVector3FloatData m_com; btVector3FloatData *m_positions; float *m_weights; int m_numPositions; int m_numWeigts; int m_bvolume; int m_bframe; float m_restVolume; int m_pad; }; // -------------------------------------------------- // class SoftBodyClusterData { public: btTransformFloatData m_framexform; btMatrix3x3FloatData m_locii; btMatrix3x3FloatData m_invwi; btVector3FloatData m_com; btVector3FloatData m_vimpulses[2]; btVector3FloatData m_dimpulses[2]; btVector3FloatData m_lv; btVector3FloatData m_av; btVector3FloatData *m_framerefs; int *m_nodeIndices; float *m_masses; int m_numFrameRefs; int m_numNodes; int m_numMasses; float m_idmass; float m_imass; int m_nvimpulses; int m_ndimpulses; float m_ndamping; float m_ldamping; float m_adamping; float m_matching; float m_maxSelfCollisionImpulse; float m_selfCollisionImpulseFactor; int m_containsAnchor; int m_collide; int m_clusterIndex; }; // -------------------------------------------------- // class btSoftBodyJointData { public: void *m_bodyA; void *m_bodyB; btVector3FloatData m_refs[2]; float m_cfm; float m_erp; float m_split; int m_delete; btVector3FloatData m_relPosition[2]; int m_bodyAtype; int m_bodyBtype; int m_jointType; int m_pad; }; // -------------------------------------------------- // class btSoftBodyFloatData { public: btCollisionObjectFloatData m_collisionObjectData; SoftBodyPoseData *m_pose; SoftBodyMaterialData **m_materials; SoftBodyNodeData *m_nodes; SoftBodyLinkData *m_links; SoftBodyFaceData *m_faces; SoftBodyTetraData *m_tetrahedra; SoftRigidAnchorData *m_anchors; SoftBodyClusterData *m_clusters; btSoftBodyJointData *m_joints; int m_numMaterials; int m_numNodes; int m_numLinks; int m_numFaces; int m_numTetrahedra; int m_numAnchors; int m_numClusters; int m_numJoints; SoftBodyConfigData m_config; }; } #endif//__BULLET_H__