Bullet Collision Detection & Physics Library
btSoftBodyData.h
Go to the documentation of this file.
1/*
2Bullet Continuous Collision Detection and Physics Library
3Copyright (c) 2003-2006 Erwin Coumans https://bulletphysics.org
4
5This software is provided 'as-is', without any express or implied warranty.
6In no event will the authors be held liable for any damages arising from the use of this software.
7Permission is granted to anyone to use this software for any purpose,
8including commercial applications, and to alter it and redistribute it freely,
9subject to the following restrictions:
10
111. 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.
122. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
133. 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{
28};
29
31{
39 float m_area;
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{
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;
161};
162
164{
169
171{
172 void *m_bodyA;
173 void *m_bodyB;
175 float m_cfm;
176 float m_erp;
177 float m_split;
183 int m_pad;
184};
185
188{
190
200
210};
211
212#endif //BT_SOFTBODY_FLOAT_DATA
#define btRigidBodyData
Definition: btRigidBody.h:35
btSoftJointBodyType
@ BT_JOINT_RIGID_BODY
@ BT_JOINT_SOFT_BODY_CLUSTER
@ BT_JOINT_COLLISION_OBJECT
btVector3FloatData m_av
btMatrix3x3FloatData m_invwi
btVector3FloatData m_vimpulses[2]
btVector3FloatData * m_framerefs
btVector3FloatData m_dimpulses[2]
btMatrix3x3FloatData m_locii
btVector3FloatData m_lv
btTransformFloatData m_framexform
float m_selfCollisionImpulseFactor
btVector3FloatData m_com
float m_softRigidClusterHardness
float m_kineticContactHardness
float m_softSoftClusterHardness
float m_softKineticClusterImpulseSplit
float m_softSoftClusterImpulseSplit
float m_softKineticClusterHardness
float m_softRigidClusterImpulseSplit
btVector3FloatData m_normal
SoftBodyMaterialData * m_material
SoftBodyMaterialData * m_material
btVector3FloatData m_accumulatedForce
btVector3FloatData m_normal
btVector3FloatData m_previousPosition
btVector3FloatData m_velocity
btVector3FloatData m_position
SoftBodyMaterialData * m_material
btMatrix3x3FloatData m_rot
btVector3FloatData m_com
btVector3FloatData * m_positions
btMatrix3x3FloatData m_aqq
btMatrix3x3FloatData m_scale
btVector3FloatData m_c0[4]
SoftBodyMaterialData * m_material
btMatrix3x3FloatData m_c0
btVector3FloatData m_localFrame
btVector3FloatData m_c1
btRigidBodyData * m_rigidBody
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
for serialization
Definition: btMatrix3x3.h:1391
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
SoftBodyMaterialData ** m_materials
SoftBodyTetraData * m_tetrahedra
btSoftBodyJointData * m_joints
btCollisionObjectFloatData m_collisionObjectData
SoftBodyPoseData * m_pose
SoftBodyFaceData * m_faces
SoftBodyConfigData m_config
SoftBodyClusterData * m_clusters
SoftBodyNodeData * m_nodes
SoftBodyLinkData * m_links
SoftRigidAnchorData * m_anchors
btVector3FloatData m_refs[2]
btVector3FloatData m_relPosition[2]
for serialization
Definition: btTransform.h:246