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