virtualx-engine/thirdparty/bullet/Bullet3Serialize/Bullet2FileLoader/autogenerated/bullet2.h
Rémi Verschelde e12c89e8c9 bullet: Streamline bundling, remove extraneous src/ folder
Document version and how to extract sources in thirdparty/README.md.
Drop unnecessary CMake and Premake files.
Simplify SCsub, drop unused one.
2018-01-13 14:08:45 +01:00

1053 lines
No EOL
28 KiB
C++

/* 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 __BULLET2_H__
#define __BULLET2_H__
namespace Bullet3SerializeBullet2 {
// put an empty struct in the case
typedef struct bInvalidHandle {
int unused;
}bInvalidHandle;
class PointerArray;
class b3PhysicsSystem;
class ListBase;
class b3Vector3FloatData;
class b3Vector3DoubleData;
class b3Matrix3x3FloatData;
class b3Matrix3x3DoubleData;
class b3TransformFloatData;
class b3TransformDoubleData;
class b3BvhSubtreeInfoData;
class b3OptimizedBvhNodeFloatData;
class b3OptimizedBvhNodeDoubleData;
class b3QuantizedBvhNodeData;
class b3QuantizedBvhFloatData;
class b3QuantizedBvhDoubleData;
class b3CollisionShapeData;
class b3StaticPlaneShapeData;
class b3ConvexInternalShapeData;
class b3PositionAndRadius;
class b3MultiSphereShapeData;
class b3IntIndexData;
class b3ShortIntIndexData;
class b3ShortIntIndexTripletData;
class b3CharIndexTripletData;
class b3MeshPartData;
class b3StridingMeshInterfaceData;
class b3TriangleMeshShapeData;
class b3ScaledTriangleMeshShapeData;
class b3CompoundShapeChildData;
class b3CompoundShapeData;
class b3CylinderShapeData;
class b3CapsuleShapeData;
class b3TriangleInfoData;
class b3TriangleInfoMapData;
class b3GImpactMeshShapeData;
class b3ConvexHullShapeData;
class b3CollisionObjectDoubleData;
class b3CollisionObjectFloatData;
class b3DynamicsWorldDoubleData;
class b3DynamicsWorldFloatData;
class b3RigidBodyFloatData;
class b3RigidBodyDoubleData;
class b3ConstraintInfo1;
class b3TypedConstraintData;
class b3Point2PointConstraintFloatData;
class b3Point2PointConstraintDoubleData;
class b3HingeConstraintDoubleData;
class b3HingeConstraintFloatData;
class b3ConeTwistConstraintData;
class b3Generic6DofConstraintData;
class b3Generic6DofSpringConstraintData;
class b3SliderConstraintData;
class b3ContactSolverInfoDoubleData;
class b3ContactSolverInfoFloatData;
class SoftBodyMaterialData;
class SoftBodyNodeData;
class SoftBodyLinkData;
class SoftBodyFaceData;
class SoftBodyTetraData;
class SoftRigidAnchorData;
class SoftBodyConfigData;
class SoftBodyPoseData;
class SoftBodyClusterData;
class b3SoftBodyJointData;
class b3SoftBodyFloatData;
// -------------------------------------------------- //
class PointerArray
{
public:
int m_size;
int m_capacity;
void *m_data;
};
// -------------------------------------------------- //
class b3PhysicsSystem
{
public:
PointerArray m_collisionShapes;
PointerArray m_collisionObjects;
PointerArray m_constraints;
};
// -------------------------------------------------- //
class ListBase
{
public:
void *first;
void *last;
};
// -------------------------------------------------- //
class b3Vector3FloatData
{
public:
float m_floats[4];
};
// -------------------------------------------------- //
class b3Vector3DoubleData
{
public:
double m_floats[4];
};
// -------------------------------------------------- //
class b3Matrix3x3FloatData
{
public:
b3Vector3FloatData m_el[3];
};
// -------------------------------------------------- //
class b3Matrix3x3DoubleData
{
public:
b3Vector3DoubleData m_el[3];
};
// -------------------------------------------------- //
class b3TransformFloatData
{
public:
b3Matrix3x3FloatData m_basis;
b3Vector3FloatData m_origin;
};
// -------------------------------------------------- //
class b3TransformDoubleData
{
public:
b3Matrix3x3DoubleData m_basis;
b3Vector3DoubleData m_origin;
};
// -------------------------------------------------- //
class b3BvhSubtreeInfoData
{
public:
int m_rootNodeIndex;
int m_subtreeSize;
short m_quantizedAabbMin[3];
short m_quantizedAabbMax[3];
};
// -------------------------------------------------- //
class b3OptimizedBvhNodeFloatData
{
public:
b3Vector3FloatData m_aabbMinOrg;
b3Vector3FloatData m_aabbMaxOrg;
int m_escapeIndex;
int m_subPart;
int m_triangleIndex;
char m_pad[4];
};
// -------------------------------------------------- //
class b3OptimizedBvhNodeDoubleData
{
public:
b3Vector3DoubleData m_aabbMinOrg;
b3Vector3DoubleData m_aabbMaxOrg;
int m_escapeIndex;
int m_subPart;
int m_triangleIndex;
char m_pad[4];
};
// -------------------------------------------------- //
class b3QuantizedBvhNodeData
{
public:
short m_quantizedAabbMin[3];
short m_quantizedAabbMax[3];
int m_escapeIndexOrTriangleIndex;
};
// -------------------------------------------------- //
class b3QuantizedBvhFloatData
{
public:
b3Vector3FloatData m_bvhAabbMin;
b3Vector3FloatData m_bvhAabbMax;
b3Vector3FloatData m_bvhQuantization;
int m_curNodeIndex;
int m_useQuantization;
int m_numContiguousLeafNodes;
int m_numQuantizedContiguousNodes;
b3OptimizedBvhNodeFloatData *m_contiguousNodesPtr;
b3QuantizedBvhNodeData *m_quantizedContiguousNodesPtr;
b3BvhSubtreeInfoData *m_subTreeInfoPtr;
int m_traversalMode;
int m_numSubtreeHeaders;
};
// -------------------------------------------------- //
class b3QuantizedBvhDoubleData
{
public:
b3Vector3DoubleData m_bvhAabbMin;
b3Vector3DoubleData m_bvhAabbMax;
b3Vector3DoubleData m_bvhQuantization;
int m_curNodeIndex;
int m_useQuantization;
int m_numContiguousLeafNodes;
int m_numQuantizedContiguousNodes;
b3OptimizedBvhNodeDoubleData *m_contiguousNodesPtr;
b3QuantizedBvhNodeData *m_quantizedContiguousNodesPtr;
int m_traversalMode;
int m_numSubtreeHeaders;
b3BvhSubtreeInfoData *m_subTreeInfoPtr;
};
// -------------------------------------------------- //
class b3CollisionShapeData
{
public:
char *m_name;
int m_shapeType;
char m_padding[4];
};
// -------------------------------------------------- //
class b3StaticPlaneShapeData
{
public:
b3CollisionShapeData m_collisionShapeData;
b3Vector3FloatData m_localScaling;
b3Vector3FloatData m_planeNormal;
float m_planeConstant;
char m_pad[4];
};
// -------------------------------------------------- //
class b3ConvexInternalShapeData
{
public:
b3CollisionShapeData m_collisionShapeData;
b3Vector3FloatData m_localScaling;
b3Vector3FloatData m_implicitShapeDimensions;
float m_collisionMargin;
int m_padding;
};
// -------------------------------------------------- //
class b3PositionAndRadius
{
public:
b3Vector3FloatData m_pos;
float m_radius;
};
// -------------------------------------------------- //
class b3MultiSphereShapeData
{
public:
b3ConvexInternalShapeData m_convexInternalShapeData;
b3PositionAndRadius *m_localPositionArrayPtr;
int m_localPositionArraySize;
char m_padding[4];
};
// -------------------------------------------------- //
class b3IntIndexData
{
public:
int m_value;
};
// -------------------------------------------------- //
class b3ShortIntIndexData
{
public:
short m_value;
char m_pad[2];
};
// -------------------------------------------------- //
class b3ShortIntIndexTripletData
{
public:
short m_values[3];
char m_pad[2];
};
// -------------------------------------------------- //
class b3CharIndexTripletData
{
public:
char m_values[3];
char m_pad;
};
// -------------------------------------------------- //
class b3MeshPartData
{
public:
b3Vector3FloatData *m_vertices3f;
b3Vector3DoubleData *m_vertices3d;
b3IntIndexData *m_indices32;
b3ShortIntIndexTripletData *m_3indices16;
b3CharIndexTripletData *m_3indices8;
b3ShortIntIndexData *m_indices16;
int m_numTriangles;
int m_numVertices;
};
// -------------------------------------------------- //
class b3StridingMeshInterfaceData
{
public:
b3MeshPartData *m_meshPartsPtr;
b3Vector3FloatData m_scaling;
int m_numMeshParts;
char m_padding[4];
};
// -------------------------------------------------- //
class b3TriangleMeshShapeData
{
public:
b3CollisionShapeData m_collisionShapeData;
b3StridingMeshInterfaceData m_meshInterface;
b3QuantizedBvhFloatData *m_quantizedFloatBvh;
b3QuantizedBvhDoubleData *m_quantizedDoubleBvh;
b3TriangleInfoMapData *m_triangleInfoMap;
float m_collisionMargin;
char m_pad3[4];
};
// -------------------------------------------------- //
class b3ScaledTriangleMeshShapeData
{
public:
b3TriangleMeshShapeData m_trimeshShapeData;
b3Vector3FloatData m_localScaling;
};
// -------------------------------------------------- //
class b3CompoundShapeChildData
{
public:
b3TransformFloatData m_transform;
b3CollisionShapeData *m_childShape;
int m_childShapeType;
float m_childMargin;
};
// -------------------------------------------------- //
class b3CompoundShapeData
{
public:
b3CollisionShapeData m_collisionShapeData;
b3CompoundShapeChildData *m_childShapePtr;
int m_numChildShapes;
float m_collisionMargin;
};
// -------------------------------------------------- //
class b3CylinderShapeData
{
public:
b3ConvexInternalShapeData m_convexInternalShapeData;
int m_upAxis;
char m_padding[4];
};
// -------------------------------------------------- //
class b3CapsuleShapeData
{
public:
b3ConvexInternalShapeData m_convexInternalShapeData;
int m_upAxis;
char m_padding[4];
};
// -------------------------------------------------- //
class b3TriangleInfoData
{
public:
int m_flags;
float m_edgeV0V1Angle;
float m_edgeV1V2Angle;
float m_edgeV2V0Angle;
};
// -------------------------------------------------- //
class b3TriangleInfoMapData
{
public:
int *m_hashTablePtr;
int *m_nextPtr;
b3TriangleInfoData *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 b3GImpactMeshShapeData
{
public:
b3CollisionShapeData m_collisionShapeData;
b3StridingMeshInterfaceData m_meshInterface;
b3Vector3FloatData m_localScaling;
float m_collisionMargin;
int m_gimpactSubType;
};
// -------------------------------------------------- //
class b3ConvexHullShapeData
{
public:
b3ConvexInternalShapeData m_convexInternalShapeData;
b3Vector3FloatData *m_unscaledPointsFloatPtr;
b3Vector3DoubleData *m_unscaledPointsDoublePtr;
int m_numUnscaledPoints;
char m_padding3[4];
};
// -------------------------------------------------- //
class b3CollisionObjectDoubleData
{
public:
void *m_broadphaseHandle;
void *m_collisionShape;
b3CollisionShapeData *m_rootCollisionShape;
char *m_name;
b3TransformDoubleData m_worldTransform;
b3TransformDoubleData m_interpolationWorldTransform;
b3Vector3DoubleData m_interpolationLinearVelocity;
b3Vector3DoubleData m_interpolationAngularVelocity;
b3Vector3DoubleData 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 b3CollisionObjectFloatData
{
public:
void *m_broadphaseHandle;
void *m_collisionShape;
b3CollisionShapeData *m_rootCollisionShape;
char *m_name;
b3TransformFloatData m_worldTransform;
b3TransformFloatData m_interpolationWorldTransform;
b3Vector3FloatData m_interpolationLinearVelocity;
b3Vector3FloatData m_interpolationAngularVelocity;
b3Vector3FloatData 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 b3RigidBodyFloatData
{
public:
b3CollisionObjectFloatData m_collisionObjectData;
b3Matrix3x3FloatData m_invInertiaTensorWorld;
b3Vector3FloatData m_linearVelocity;
b3Vector3FloatData m_angularVelocity;
b3Vector3FloatData m_angularFactor;
b3Vector3FloatData m_linearFactor;
b3Vector3FloatData m_gravity;
b3Vector3FloatData m_gravity_acceleration;
b3Vector3FloatData m_invInertiaLocal;
b3Vector3FloatData m_totalForce;
b3Vector3FloatData 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 b3RigidBodyDoubleData
{
public:
b3CollisionObjectDoubleData m_collisionObjectData;
b3Matrix3x3DoubleData m_invInertiaTensorWorld;
b3Vector3DoubleData m_linearVelocity;
b3Vector3DoubleData m_angularVelocity;
b3Vector3DoubleData m_angularFactor;
b3Vector3DoubleData m_linearFactor;
b3Vector3DoubleData m_gravity;
b3Vector3DoubleData m_gravity_acceleration;
b3Vector3DoubleData m_invInertiaLocal;
b3Vector3DoubleData m_totalForce;
b3Vector3DoubleData 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 b3ConstraintInfo1
{
public:
int m_numConstraintRows;
int nub;
};
// -------------------------------------------------- //
class b3TypedConstraintData
{
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 b3Point2PointConstraintFloatData
{
public:
b3TypedConstraintData m_typeConstraintData;
b3Vector3FloatData m_pivotInA;
b3Vector3FloatData m_pivotInB;
};
// -------------------------------------------------- //
class b3Point2PointConstraintDoubleData
{
public:
b3TypedConstraintData m_typeConstraintData;
b3Vector3DoubleData m_pivotInA;
b3Vector3DoubleData m_pivotInB;
};
// -------------------------------------------------- //
class b3HingeConstraintDoubleData
{
public:
b3TypedConstraintData m_typeConstraintData;
b3TransformDoubleData m_rbAFrame;
b3TransformDoubleData 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 b3HingeConstraintFloatData
{
public:
b3TypedConstraintData m_typeConstraintData;
b3TransformFloatData m_rbAFrame;
b3TransformFloatData 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 b3ConeTwistConstraintData
{
public:
b3TypedConstraintData m_typeConstraintData;
b3TransformFloatData m_rbAFrame;
b3TransformFloatData 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 b3Generic6DofConstraintData
{
public:
b3TypedConstraintData m_typeConstraintData;
b3TransformFloatData m_rbAFrame;
b3TransformFloatData m_rbBFrame;
b3Vector3FloatData m_linearUpperLimit;
b3Vector3FloatData m_linearLowerLimit;
b3Vector3FloatData m_angularUpperLimit;
b3Vector3FloatData m_angularLowerLimit;
int m_useLinearReferenceFrameA;
int m_useOffsetForConstraintFrame;
};
// -------------------------------------------------- //
class b3Generic6DofSpringConstraintData
{
public:
b3Generic6DofConstraintData m_6dofData;
int m_springEnabled[6];
float m_equilibriumPoint[6];
float m_springStiffness[6];
float m_springDamping[6];
};
// -------------------------------------------------- //
class b3SliderConstraintData
{
public:
b3TypedConstraintData m_typeConstraintData;
b3TransformFloatData m_rbAFrame;
b3TransformFloatData m_rbBFrame;
float m_linearUpperLimit;
float m_linearLowerLimit;
float m_angularUpperLimit;
float m_angularLowerLimit;
int m_useLinearReferenceFrameA;
int m_useOffsetForConstraintFrame;
};
// -------------------------------------------------- //
class b3ContactSolverInfoDoubleData
{
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 b3ContactSolverInfoFloatData
{
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 b3DynamicsWorldDoubleData
{
public:
b3ContactSolverInfoDoubleData m_solverInfo;
b3Vector3DoubleData m_gravity;
};
// -------------------------------------------------- //
class b3DynamicsWorldFloatData
{
public:
b3ContactSolverInfoFloatData m_solverInfo;
b3Vector3FloatData m_gravity;
};
// -------------------------------------------------- //
class SoftBodyMaterialData
{
public:
float m_linearStiffness;
float m_angularStiffness;
float m_volumeStiffness;
int m_flags;
};
// -------------------------------------------------- //
class SoftBodyNodeData
{
public:
SoftBodyMaterialData *m_material;
b3Vector3FloatData m_position;
b3Vector3FloatData m_previousPosition;
b3Vector3FloatData m_velocity;
b3Vector3FloatData m_accumulatedForce;
b3Vector3FloatData 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:
b3Vector3FloatData m_normal;
SoftBodyMaterialData *m_material;
int m_nodeIndices[3];
float m_restArea;
};
// -------------------------------------------------- //
class SoftBodyTetraData
{
public:
b3Vector3FloatData 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:
b3Matrix3x3FloatData m_c0;
b3Vector3FloatData m_c1;
b3Vector3FloatData 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:
b3Matrix3x3FloatData m_rot;
b3Matrix3x3FloatData m_scale;
b3Matrix3x3FloatData m_aqq;
b3Vector3FloatData m_com;
b3Vector3FloatData *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:
b3TransformFloatData m_framexform;
b3Matrix3x3FloatData m_locii;
b3Matrix3x3FloatData m_invwi;
b3Vector3FloatData m_com;
b3Vector3FloatData m_vimpulses[2];
b3Vector3FloatData m_dimpulses[2];
b3Vector3FloatData m_lv;
b3Vector3FloatData m_av;
b3Vector3FloatData *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 b3SoftBodyJointData
{
public:
void *m_bodyA;
void *m_bodyB;
b3Vector3FloatData m_refs[2];
float m_cfm;
float m_erp;
float m_split;
int m_delete;
b3Vector3FloatData m_relPosition[2];
int m_bodyAtype;
int m_bodyBtype;
int m_jointType;
int m_pad;
};
// -------------------------------------------------- //
class b3SoftBodyFloatData
{
public:
b3CollisionObjectFloatData 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;
b3SoftBodyJointData *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//__BULLET2_H__