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
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 ...
for serialization
Definition: btMatrix3x3.h:1367
SoftBodyMaterialData * m_material
float m_softRigidClusterHardness
float m_softKineticClusterHardness
btVector3FloatData m_relPosition[2]
SoftBodyConfigData m_config
SoftBodyTetraData * m_tetrahedra
btVector3FloatData m_com
btVector3FloatData m_previousPosition
btVector3FloatData m_localFrame
SoftBodyMaterialData ** m_materials
btVector3FloatData m_vimpulses[2]
btVector3FloatData m_dimpulses[2]
btVector3FloatData m_accumulatedForce
#define btRigidBodyData
Definition: btRigidBody.h:35
btVector3FloatData m_normal
btSoftJointBodyType
btVector3FloatData m_normal
btVector3FloatData m_refs[2]
btMatrix3x3FloatData m_c0
float m_softKineticClusterImpulseSplit
btMatrix3x3FloatData m_rot
SoftBodyPoseData * m_pose
SoftBodyLinkData * m_links
SoftBodyMaterialData * m_material
float m_softSoftClusterImpulseSplit
SoftRigidAnchorData * m_anchors
btSoftBodyJointData * m_joints
btMatrix3x3FloatData m_invwi
btVector3FloatData m_velocity
SoftBodyClusterData * m_clusters
btMatrix3x3FloatData m_scale
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 ...
btRigidBodyData * m_rigidBody
SoftBodyFaceData * m_faces
float m_softRigidClusterImpulseSplit
btMatrix3x3FloatData m_aqq
btVector3FloatData m_av
float m_kineticContactHardness
btVector3FloatData m_position
for serialization
Definition: btTransform.h:244
SoftBodyNodeData * m_nodes
SoftBodyMaterialData * m_material
btCollisionObjectFloatData m_collisionObjectData
btVector3FloatData * m_framerefs
btVector3FloatData m_com
btVector3FloatData m_c0[4]
SoftBodyMaterialData * m_material
float m_softSoftClusterHardness
btTransformFloatData m_framexform
btVector3FloatData m_c1
float m_selfCollisionImpulseFactor
btVector3FloatData m_lv
btVector3FloatData * m_positions
btMatrix3x3FloatData m_locii