Bullet Collision Detection & Physics Library
btSoftBodyData.h
Go to the documentation of this file.
1 /*
2 Bullet Continuous Collision Detection and Physics Library
3 Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/
4 
5 This software is provided 'as-is', without any express or implied warranty.
6 In no event will the authors be held liable for any damages arising from the use of this software.
7 Permission is granted to anyone to use this software for any purpose,
8 including commercial applications, and to alter it and redistribute it freely,
9 subject to the following restrictions:
10 
11 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.
12 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
13 3. This notice may not be removed or altered from any source distribution.
14 */
15 
16 #ifndef BT_SOFTBODY_FLOAT_DATA
17 #define BT_SOFTBODY_FLOAT_DATA
18 
21 
23 {
27  int m_flags;
28 };
29 
31 {
39  float m_area;
40  int m_attach;
41  int m_pad;
42 };
43 
45 {
47  int m_nodeIndices[2]; // Node pointers
48  float m_restLength; // Rest length
49  int m_bbending; // Bending link
50 };
51 
53 {
56  int m_nodeIndices[3]; // Node pointers
57  float m_restArea; // Rest area
58 };
59 
61 {
62  btVector3FloatData m_c0[4]; // gradients
64  int m_nodeIndices[4]; // Node pointers
65  float m_restVolume; // Rest volume
66  float m_c1; // (4*kVST)/(im0+im1+im2+im3)
67  float m_c2; // m_c1/sum(|g0..3|^2)
68  int m_pad;
69 };
70 
72 {
73  btMatrix3x3FloatData m_c0; // Impulse matrix
74  btVector3FloatData m_c1; // Relative anchor
75  btVector3FloatData m_localFrame; // Anchor position in body space
77  int m_nodeIndex; // Node pointer
78  float m_c2; // ima*dt
79 };
80 
82 {
83  int m_aeroModel; // Aerodynamic model (default: V_Point)
84  float m_baumgarte; // Velocities correction factor (Baumgarte)
85  float m_damping; // Damping coefficient [0,1]
86  float m_drag; // Drag coefficient [0,+inf]
87  float m_lift; // Lift coefficient [0,+inf]
88  float m_pressure; // Pressure coefficient [-inf,+inf]
89  float m_volume; // Volume conversation coefficient [0,+inf]
90  float m_dynamicFriction; // Dynamic friction coefficient [0,1]
91  float m_poseMatch; // Pose matching coefficient [0,1]
92  float m_rigidContactHardness; // Rigid contacts hardness [0,1]
93  float m_kineticContactHardness; // Kinetic contacts hardness [0,1]
94  float m_softContactHardness; // Soft contacts hardness [0,1]
95  float m_anchorHardness; // Anchors hardness [0,1]
96  float m_softRigidClusterHardness; // Soft vs rigid hardness [0,1] (cluster only)
97  float m_softKineticClusterHardness; // Soft vs kinetic hardness [0,1] (cluster only)
98  float m_softSoftClusterHardness; // Soft vs soft hardness [0,1] (cluster only)
99  float m_softRigidClusterImpulseSplit; // Soft vs rigid impulse split [0,1] (cluster only)
100  float m_softKineticClusterImpulseSplit; // Soft vs rigid impulse split [0,1] (cluster only)
101  float m_softSoftClusterImpulseSplit; // Soft vs rigid impulse split [0,1] (cluster only)
102  float m_maxVolume; // Maximum volume ratio for pose
103  float m_timeScale; // Time scale
104  int m_velocityIterations; // Velocities solver iterations
105  int m_positionIterations; // Positions solver iterations
106  int m_driftIterations; // Drift solver iterations
107  int m_clusterIterations; // Cluster solver iterations
108  int m_collisionFlags; // Collisions flags
109 };
110 
112 {
115  btMatrix3x3FloatData m_aqq; // Base scaling
117 
118  btVector3FloatData *m_positions; // Reference positions
119  float *m_weights; // Weights
122 
123  int m_bvolume; // Is valid
124  int m_bframe; // Is frame
125  float m_restVolume; // Rest volume
126  int m_pad;
127 };
128 
130 {
139 
142  float *m_masses;
143 
147 
148  float m_idmass;
149  float m_imass;
152  float m_ndamping;
153  float m_ldamping;
154  float m_adamping;
155  float m_matching;
161 };
162 
164 {
168 };
169 
171 {
172  void *m_bodyA;
173  void *m_bodyB;
175  float m_cfm;
176  float m_erp;
177  float m_split;
178  int m_delete;
183  int m_pad;
184 };
185 
188 {
190 
200 
210 };
211 
212 #endif //BT_SOFTBODY_FLOAT_DATA
SoftBodyClusterData::m_framerefs
btVector3FloatData * m_framerefs
Definition: btSoftBodyData.h:140
SoftBodyClusterData::m_numMasses
int m_numMasses
Definition: btSoftBodyData.h:146
SoftBodyLinkData::m_material
SoftBodyMaterialData * m_material
Definition: btSoftBodyData.h:46
SoftBodyConfigData::m_collisionFlags
int m_collisionFlags
Definition: btSoftBodyData.h:108
btSoftBodyFloatData::m_numAnchors
int m_numAnchors
Definition: btSoftBodyData.h:206
btSoftBodyJointData::m_relPosition
btVector3FloatData m_relPosition[2]
Definition: btSoftBodyData.h:179
btSoftBodyJointData::m_bodyA
void * m_bodyA
Definition: btSoftBodyData.h:172
SoftBodyFaceData::m_restArea
float m_restArea
Definition: btSoftBodyData.h:57
SoftBodyConfigData::m_softSoftClusterImpulseSplit
float m_softSoftClusterImpulseSplit
Definition: btSoftBodyData.h:101
SoftBodyTetraData::m_restVolume
float m_restVolume
Definition: btSoftBodyData.h:65
SoftRigidAnchorData::m_c2
float m_c2
Definition: btSoftBodyData.h:78
btSoftBodyFloatData
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
Definition: btSoftBodyData.h:187
SoftRigidAnchorData::m_nodeIndex
int m_nodeIndex
Definition: btSoftBodyData.h:77
SoftBodyClusterData::m_dimpulses
btVector3FloatData m_dimpulses[2]
Definition: btSoftBodyData.h:136
SoftBodyNodeData::m_previousPosition
btVector3FloatData m_previousPosition
Definition: btSoftBodyData.h:34
BT_JOINT_SOFT_BODY_CLUSTER
Definition: btSoftBodyData.h:165
btSoftBodyFloatData::m_joints
btSoftBodyJointData * m_joints
Definition: btSoftBodyData.h:199
SoftBodyPoseData::m_bframe
int m_bframe
Definition: btSoftBodyData.h:124
btCollisionObjectFloatData
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
Definition: btCollisionObject.h:626
btSoftBodyJointData::m_split
float m_split
Definition: btSoftBodyData.h:177
SoftBodyConfigData::m_poseMatch
float m_poseMatch
Definition: btSoftBodyData.h:91
btSoftBodyFloatData::m_collisionObjectData
btCollisionObjectFloatData m_collisionObjectData
Definition: btSoftBodyData.h:189
SoftBodyConfigData::m_positionIterations
int m_positionIterations
Definition: btSoftBodyData.h:105
SoftBodyClusterData::m_framexform
btTransformFloatData m_framexform
Definition: btSoftBodyData.h:131
SoftBodyConfigData::m_volume
float m_volume
Definition: btSoftBodyData.h:89
SoftRigidAnchorData::m_rigidBody
btRigidBodyData * m_rigidBody
Definition: btSoftBodyData.h:76
SoftBodyFaceData::m_nodeIndices
int m_nodeIndices[3]
Definition: btSoftBodyData.h:56
SoftBodyNodeData::m_inverseMass
float m_inverseMass
Definition: btSoftBodyData.h:38
btSoftBodyFloatData::m_nodes
SoftBodyNodeData * m_nodes
Definition: btSoftBodyData.h:193
SoftBodyClusterData::m_ndamping
float m_ndamping
Definition: btSoftBodyData.h:152
SoftRigidAnchorData
Definition: btSoftBodyData.h:71
btRigidBody.h
SoftBodyTetraData::m_nodeIndices
int m_nodeIndices[4]
Definition: btSoftBodyData.h:64
SoftBodyLinkData
Definition: btSoftBodyData.h:44
SoftBodyPoseData
Definition: btSoftBodyData.h:111
SoftBodyClusterData::m_collide
int m_collide
Definition: btSoftBodyData.h:159
SoftBodyConfigData::m_velocityIterations
int m_velocityIterations
Definition: btSoftBodyData.h:104
SoftBodyClusterData::m_locii
btMatrix3x3FloatData m_locii
Definition: btSoftBodyData.h:132
SoftBodyClusterData::m_idmass
float m_idmass
Definition: btSoftBodyData.h:148
SoftBodyConfigData::m_softKineticClusterImpulseSplit
float m_softKineticClusterImpulseSplit
Definition: btSoftBodyData.h:100
SoftBodyConfigData::m_drag
float m_drag
Definition: btSoftBodyData.h:86
SoftBodyConfigData::m_baumgarte
float m_baumgarte
Definition: btSoftBodyData.h:84
SoftBodyClusterData::m_nodeIndices
int * m_nodeIndices
Definition: btSoftBodyData.h:141
SoftBodyFaceData::m_material
SoftBodyMaterialData * m_material
Definition: btSoftBodyData.h:55
SoftBodyConfigData::m_softKineticClusterHardness
float m_softKineticClusterHardness
Definition: btSoftBodyData.h:97
SoftBodyConfigData::m_dynamicFriction
float m_dynamicFriction
Definition: btSoftBodyData.h:90
SoftBodyClusterData::m_vimpulses
btVector3FloatData m_vimpulses[2]
Definition: btSoftBodyData.h:135
btSoftBodyJointData::m_jointType
int m_jointType
Definition: btSoftBodyData.h:182
SoftBodyConfigData::m_softRigidClusterImpulseSplit
float m_softRigidClusterImpulseSplit
Definition: btSoftBodyData.h:99
btVector3FloatData
Definition: btVector3.h:1281
btSoftBodyFloatData::m_numFaces
int m_numFaces
Definition: btSoftBodyData.h:204
btSoftBodyJointData::m_bodyBtype
int m_bodyBtype
Definition: btSoftBodyData.h:181
SoftBodyClusterData::m_masses
float * m_masses
Definition: btSoftBodyData.h:142
SoftBodyNodeData::m_accumulatedForce
btVector3FloatData m_accumulatedForce
Definition: btSoftBodyData.h:36
SoftBodyConfigData::m_rigidContactHardness
float m_rigidContactHardness
Definition: btSoftBodyData.h:92
SoftBodyClusterData::m_ldamping
float m_ldamping
Definition: btSoftBodyData.h:153
SoftBodyMaterialData
Definition: btSoftBodyData.h:22
SoftBodyClusterData::m_selfCollisionImpulseFactor
float m_selfCollisionImpulseFactor
Definition: btSoftBodyData.h:157
btSoftBodyJointData::m_cfm
float m_cfm
Definition: btSoftBodyData.h:175
SoftBodyTetraData::m_c2
float m_c2
Definition: btSoftBodyData.h:67
SoftBodyConfigData::m_lift
float m_lift
Definition: btSoftBodyData.h:87
btSoftBodyJointData::m_delete
int m_delete
Definition: btSoftBodyData.h:178
SoftBodyClusterData::m_clusterIndex
int m_clusterIndex
Definition: btSoftBodyData.h:160
SoftBodyConfigData::m_driftIterations
int m_driftIterations
Definition: btSoftBodyData.h:106
SoftBodyNodeData::m_normal
btVector3FloatData m_normal
Definition: btSoftBodyData.h:37
btSoftBodyFloatData::m_anchors
SoftRigidAnchorData * m_anchors
Definition: btSoftBodyData.h:197
btSoftBodyJointData
Definition: btSoftBodyData.h:170
btSoftBodyJointData::m_pad
int m_pad
Definition: btSoftBodyData.h:183
SoftBodyPoseData::m_numPositions
int m_numPositions
Definition: btSoftBodyData.h:120
BT_JOINT_RIGID_BODY
Definition: btSoftBodyData.h:166
btSoftBodyJointData::m_refs
btVector3FloatData m_refs[2]
Definition: btSoftBodyData.h:174
SoftBodyClusterData::m_nvimpulses
int m_nvimpulses
Definition: btSoftBodyData.h:150
btRigidBodyData
#define btRigidBodyData
Definition: btRigidBody.h:35
SoftBodyClusterData::m_containsAnchor
int m_containsAnchor
Definition: btSoftBodyData.h:158
SoftBodyClusterData::m_ndimpulses
int m_ndimpulses
Definition: btSoftBodyData.h:151
btSoftBodyFloatData::m_config
SoftBodyConfigData m_config
Definition: btSoftBodyData.h:209
SoftBodyConfigData::m_kineticContactHardness
float m_kineticContactHardness
Definition: btSoftBodyData.h:93
SoftBodyConfigData::m_timeScale
float m_timeScale
Definition: btSoftBodyData.h:103
SoftBodyPoseData::m_pad
int m_pad
Definition: btSoftBodyData.h:126
SoftBodyMaterialData::m_linearStiffness
float m_linearStiffness
Definition: btSoftBodyData.h:24
SoftBodyConfigData::m_clusterIterations
int m_clusterIterations
Definition: btSoftBodyData.h:107
SoftBodyConfigData::m_pressure
float m_pressure
Definition: btSoftBodyData.h:88
SoftBodyClusterData::m_numFrameRefs
int m_numFrameRefs
Definition: btSoftBodyData.h:144
SoftBodyPoseData::m_scale
btMatrix3x3FloatData m_scale
Definition: btSoftBodyData.h:114
SoftBodyNodeData::m_velocity
btVector3FloatData m_velocity
Definition: btSoftBodyData.h:35
SoftBodyTetraData::m_material
SoftBodyMaterialData * m_material
Definition: btSoftBodyData.h:63
SoftBodyClusterData::m_lv
btVector3FloatData m_lv
Definition: btSoftBodyData.h:137
SoftRigidAnchorData::m_c1
btVector3FloatData m_c1
Definition: btSoftBodyData.h:74
SoftBodyFaceData::m_normal
btVector3FloatData m_normal
Definition: btSoftBodyData.h:54
SoftBodyTetraData::m_c1
float m_c1
Definition: btSoftBodyData.h:66
SoftBodyNodeData::m_position
btVector3FloatData m_position
Definition: btSoftBodyData.h:33
SoftBodyMaterialData::m_flags
int m_flags
Definition: btSoftBodyData.h:27
SoftBodyNodeData
Definition: btSoftBodyData.h:30
SoftBodyNodeData::m_area
float m_area
Definition: btSoftBodyData.h:39
SoftBodyLinkData::m_bbending
int m_bbending
Definition: btSoftBodyData.h:49
btSoftJointBodyType
btSoftJointBodyType
Definition: btSoftBodyData.h:163
SoftBodyLinkData::m_nodeIndices
int m_nodeIndices[2]
Definition: btSoftBodyData.h:47
SoftBodyClusterData::m_invwi
btMatrix3x3FloatData m_invwi
Definition: btSoftBodyData.h:133
btSoftBodyFloatData::m_numNodes
int m_numNodes
Definition: btSoftBodyData.h:202
SoftBodyPoseData::m_rot
btMatrix3x3FloatData m_rot
Definition: btSoftBodyData.h:113
btSoftBodyFloatData::m_pose
SoftBodyPoseData * m_pose
Definition: btSoftBodyData.h:191
btSoftBodyFloatData::m_materials
SoftBodyMaterialData ** m_materials
Definition: btSoftBodyData.h:192
btSoftBodyJointData::m_erp
float m_erp
Definition: btSoftBodyData.h:176
SoftBodyPoseData::m_aqq
btMatrix3x3FloatData m_aqq
Definition: btSoftBodyData.h:115
SoftBodyFaceData
Definition: btSoftBodyData.h:52
btSoftBodyFloatData::m_numLinks
int m_numLinks
Definition: btSoftBodyData.h:203
BT_JOINT_COLLISION_OBJECT
Definition: btSoftBodyData.h:167
btTransformFloatData
for serialization
Definition: btTransform.h:244
btSoftBodyFloatData::m_clusters
SoftBodyClusterData * m_clusters
Definition: btSoftBodyData.h:198
SoftBodyClusterData::m_imass
float m_imass
Definition: btSoftBodyData.h:149
SoftBodyConfigData::m_softRigidClusterHardness
float m_softRigidClusterHardness
Definition: btSoftBodyData.h:96
SoftBodyClusterData::m_com
btVector3FloatData m_com
Definition: btSoftBodyData.h:134
SoftBodyClusterData
Definition: btSoftBodyData.h:129
SoftBodyConfigData::m_softSoftClusterHardness
float m_softSoftClusterHardness
Definition: btSoftBodyData.h:98
btSoftBodyFloatData::m_faces
SoftBodyFaceData * m_faces
Definition: btSoftBodyData.h:195
SoftBodyPoseData::m_bvolume
int m_bvolume
Definition: btSoftBodyData.h:123
SoftBodyPoseData::m_numWeigts
int m_numWeigts
Definition: btSoftBodyData.h:121
SoftBodyPoseData::m_positions
btVector3FloatData * m_positions
Definition: btSoftBodyData.h:118
SoftBodyConfigData::m_anchorHardness
float m_anchorHardness
Definition: btSoftBodyData.h:95
SoftRigidAnchorData::m_localFrame
btVector3FloatData m_localFrame
Definition: btSoftBodyData.h:75
SoftBodyPoseData::m_restVolume
float m_restVolume
Definition: btSoftBodyData.h:125
SoftBodyClusterData::m_numNodes
int m_numNodes
Definition: btSoftBodyData.h:145
SoftBodyConfigData::m_softContactHardness
float m_softContactHardness
Definition: btSoftBodyData.h:94
btSoftBodyFloatData::m_tetrahedra
SoftBodyTetraData * m_tetrahedra
Definition: btSoftBodyData.h:196
SoftBodyNodeData::m_material
SoftBodyMaterialData * m_material
Definition: btSoftBodyData.h:32
SoftBodyConfigData
Definition: btSoftBodyData.h:81
btCollisionObject.h
SoftBodyConfigData::m_maxVolume
float m_maxVolume
Definition: btSoftBodyData.h:102
SoftBodyTetraData
Definition: btSoftBodyData.h:60
SoftBodyClusterData::m_adamping
float m_adamping
Definition: btSoftBodyData.h:154
SoftBodyLinkData::m_restLength
float m_restLength
Definition: btSoftBodyData.h:48
SoftBodyNodeData::m_pad
int m_pad
Definition: btSoftBodyData.h:41
btSoftBodyFloatData::m_numTetrahedra
int m_numTetrahedra
Definition: btSoftBodyData.h:205
SoftBodyPoseData::m_com
btVector3FloatData m_com
Definition: btSoftBodyData.h:116
SoftBodyNodeData::m_attach
int m_attach
Definition: btSoftBodyData.h:40
SoftBodyClusterData::m_matching
float m_matching
Definition: btSoftBodyData.h:155
btSoftBodyJointData::m_bodyAtype
int m_bodyAtype
Definition: btSoftBodyData.h:180
SoftBodyPoseData::m_weights
float * m_weights
Definition: btSoftBodyData.h:119
btMatrix3x3FloatData
for serialization
Definition: btMatrix3x3.h:1367
SoftBodyConfigData::m_damping
float m_damping
Definition: btSoftBodyData.h:85
SoftRigidAnchorData::m_c0
btMatrix3x3FloatData m_c0
Definition: btSoftBodyData.h:73
SoftBodyClusterData::m_av
btVector3FloatData m_av
Definition: btSoftBodyData.h:138
btSoftBodyFloatData::m_numClusters
int m_numClusters
Definition: btSoftBodyData.h:207
SoftBodyMaterialData::m_volumeStiffness
float m_volumeStiffness
Definition: btSoftBodyData.h:26
SoftBodyTetraData::m_pad
int m_pad
Definition: btSoftBodyData.h:68
SoftBodyTetraData::m_c0
btVector3FloatData m_c0[4]
Definition: btSoftBodyData.h:62
btSoftBodyFloatData::m_numMaterials
int m_numMaterials
Definition: btSoftBodyData.h:201
btSoftBodyFloatData::m_links
SoftBodyLinkData * m_links
Definition: btSoftBodyData.h:194
SoftBodyConfigData::m_aeroModel
int m_aeroModel
Definition: btSoftBodyData.h:83
SoftBodyMaterialData::m_angularStiffness
float m_angularStiffness
Definition: btSoftBodyData.h:25
SoftBodyClusterData::m_maxSelfCollisionImpulse
float m_maxSelfCollisionImpulse
Definition: btSoftBodyData.h:156
btSoftBodyJointData::m_bodyB
void * m_bodyB
Definition: btSoftBodyData.h:173
btSoftBodyFloatData::m_numJoints
int m_numJoints
Definition: btSoftBodyData.h:208