bullet.h 40 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432
  1. /* Copyright (C) 2011 Erwin Coumans & Charlie C
  2. *
  3. * This software is provided 'as-is', without any express or implied
  4. * warranty. In no event will the authors be held liable for any damages
  5. * arising from the use of this software.
  6. *
  7. * Permission is granted to anyone to use this software for any purpose,
  8. * including commercial applications, and to alter it and redistribute it
  9. * freely, subject to the following restrictions:
  10. *
  11. * 1. The origin of this software must not be misrepresented; you must not
  12. * claim that you wrote the original software. If you use this software
  13. * in a product, an acknowledgment in the product documentation would be
  14. * appreciated but is not required.
  15. * 2. Altered source versions must be plainly marked as such, and must not be
  16. * misrepresented as being the original software.
  17. * 3. This notice may not be removed or altered from any source distribution.
  18. */
  19. // Auto generated from Bullet/Extras/HeaderGenerator/bulletGenerate.py
  20. #ifndef __BULLET_H__
  21. #define __BULLET_H__
  22. namespace Bullet {
  23. // put an empty struct in the case
  24. typedef struct bInvalidHandle {
  25. int unused;
  26. }bInvalidHandle;
  27. class PointerArray;
  28. class btPhysicsSystem;
  29. class ListBase;
  30. class btVector3FloatData;
  31. class btVector3DoubleData;
  32. class btQuaternionFloatData;
  33. class btQuaternionDoubleData;
  34. class btMatrix3x3FloatData;
  35. class btMatrix3x3DoubleData;
  36. class btTransformFloatData;
  37. class btTransformDoubleData;
  38. class btBvhSubtreeInfoData;
  39. class btOptimizedBvhNodeFloatData;
  40. class btOptimizedBvhNodeDoubleData;
  41. class btQuantizedBvhNodeData;
  42. class btQuantizedBvhFloatData;
  43. class btQuantizedBvhDoubleData;
  44. class btCollisionShapeData;
  45. class btStaticPlaneShapeData;
  46. class btConvexInternalShapeData;
  47. class btPositionAndRadius;
  48. class btMultiSphereShapeData;
  49. class btIntIndexData;
  50. class btShortIntIndexData;
  51. class btShortIntIndexTripletData;
  52. class btCharIndexTripletData;
  53. class btMeshPartData;
  54. class btStridingMeshInterfaceData;
  55. class btTriangleMeshShapeData;
  56. class btScaledTriangleMeshShapeData;
  57. class btCompoundShapeChildData;
  58. class btCompoundShapeData;
  59. class btCylinderShapeData;
  60. class btConeShapeData;
  61. class btCapsuleShapeData;
  62. class btTriangleInfoData;
  63. class btTriangleInfoMapData;
  64. class btGImpactMeshShapeData;
  65. class btConvexHullShapeData;
  66. class btCollisionObjectDoubleData;
  67. class btCollisionObjectFloatData;
  68. class btContactSolverInfoDoubleData;
  69. class btContactSolverInfoFloatData;
  70. class btDynamicsWorldDoubleData;
  71. class btDynamicsWorldFloatData;
  72. class btRigidBodyFloatData;
  73. class btRigidBodyDoubleData;
  74. class btConstraintInfo1;
  75. class btTypedConstraintFloatData;
  76. class btTypedConstraintData;
  77. class btTypedConstraintDoubleData;
  78. class btPoint2PointConstraintFloatData;
  79. class btPoint2PointConstraintDoubleData2;
  80. class btPoint2PointConstraintDoubleData;
  81. class btHingeConstraintDoubleData;
  82. class btHingeConstraintFloatData;
  83. class btHingeConstraintDoubleData2;
  84. class btConeTwistConstraintDoubleData;
  85. class btConeTwistConstraintData;
  86. class btGeneric6DofConstraintData;
  87. class btGeneric6DofConstraintDoubleData2;
  88. class btGeneric6DofSpringConstraintData;
  89. class btGeneric6DofSpringConstraintDoubleData2;
  90. class btGeneric6DofSpring2ConstraintData;
  91. class btGeneric6DofSpring2ConstraintDoubleData2;
  92. class btSliderConstraintData;
  93. class btSliderConstraintDoubleData;
  94. class btGearConstraintFloatData;
  95. class btGearConstraintDoubleData;
  96. class SoftBodyMaterialData;
  97. class SoftBodyNodeData;
  98. class SoftBodyLinkData;
  99. class SoftBodyFaceData;
  100. class SoftBodyTetraData;
  101. class SoftRigidAnchorData;
  102. class SoftBodyConfigData;
  103. class SoftBodyPoseData;
  104. class SoftBodyClusterData;
  105. class btSoftBodyJointData;
  106. class btSoftBodyFloatData;
  107. class btMultiBodyLinkDoubleData;
  108. class btMultiBodyLinkFloatData;
  109. class btMultiBodyDoubleData;
  110. class btMultiBodyFloatData;
  111. // -------------------------------------------------- //
  112. class PointerArray
  113. {
  114. public:
  115. int m_size;
  116. int m_capacity;
  117. void *m_data;
  118. };
  119. // -------------------------------------------------- //
  120. class btPhysicsSystem
  121. {
  122. public:
  123. PointerArray m_collisionShapes;
  124. PointerArray m_collisionObjects;
  125. PointerArray m_constraints;
  126. };
  127. // -------------------------------------------------- //
  128. class ListBase
  129. {
  130. public:
  131. void *first;
  132. void *last;
  133. };
  134. // -------------------------------------------------- //
  135. class btVector3FloatData
  136. {
  137. public:
  138. float m_floats[4];
  139. };
  140. // -------------------------------------------------- //
  141. class btVector3DoubleData
  142. {
  143. public:
  144. double m_floats[4];
  145. };
  146. // -------------------------------------------------- //
  147. class btQuaternionFloatData
  148. {
  149. public:
  150. float m_floats[4];
  151. };
  152. // -------------------------------------------------- //
  153. class btQuaternionDoubleData
  154. {
  155. public:
  156. double m_floats[4];
  157. };
  158. // -------------------------------------------------- //
  159. class btMatrix3x3FloatData
  160. {
  161. public:
  162. btVector3FloatData m_el[3];
  163. };
  164. // -------------------------------------------------- //
  165. class btMatrix3x3DoubleData
  166. {
  167. public:
  168. btVector3DoubleData m_el[3];
  169. };
  170. // -------------------------------------------------- //
  171. class btTransformFloatData
  172. {
  173. public:
  174. btMatrix3x3FloatData m_basis;
  175. btVector3FloatData m_origin;
  176. };
  177. // -------------------------------------------------- //
  178. class btTransformDoubleData
  179. {
  180. public:
  181. btMatrix3x3DoubleData m_basis;
  182. btVector3DoubleData m_origin;
  183. };
  184. // -------------------------------------------------- //
  185. class btBvhSubtreeInfoData
  186. {
  187. public:
  188. int m_rootNodeIndex;
  189. int m_subtreeSize;
  190. short m_quantizedAabbMin[3];
  191. short m_quantizedAabbMax[3];
  192. };
  193. // -------------------------------------------------- //
  194. class btOptimizedBvhNodeFloatData
  195. {
  196. public:
  197. btVector3FloatData m_aabbMinOrg;
  198. btVector3FloatData m_aabbMaxOrg;
  199. int m_escapeIndex;
  200. int m_subPart;
  201. int m_triangleIndex;
  202. char m_pad[4];
  203. };
  204. // -------------------------------------------------- //
  205. class btOptimizedBvhNodeDoubleData
  206. {
  207. public:
  208. btVector3DoubleData m_aabbMinOrg;
  209. btVector3DoubleData m_aabbMaxOrg;
  210. int m_escapeIndex;
  211. int m_subPart;
  212. int m_triangleIndex;
  213. char m_pad[4];
  214. };
  215. // -------------------------------------------------- //
  216. class btQuantizedBvhNodeData
  217. {
  218. public:
  219. short m_quantizedAabbMin[3];
  220. short m_quantizedAabbMax[3];
  221. int m_escapeIndexOrTriangleIndex;
  222. };
  223. // -------------------------------------------------- //
  224. class btQuantizedBvhFloatData
  225. {
  226. public:
  227. btVector3FloatData m_bvhAabbMin;
  228. btVector3FloatData m_bvhAabbMax;
  229. btVector3FloatData m_bvhQuantization;
  230. int m_curNodeIndex;
  231. int m_useQuantization;
  232. int m_numContiguousLeafNodes;
  233. int m_numQuantizedContiguousNodes;
  234. btOptimizedBvhNodeFloatData *m_contiguousNodesPtr;
  235. btQuantizedBvhNodeData *m_quantizedContiguousNodesPtr;
  236. btBvhSubtreeInfoData *m_subTreeInfoPtr;
  237. int m_traversalMode;
  238. int m_numSubtreeHeaders;
  239. };
  240. // -------------------------------------------------- //
  241. class btQuantizedBvhDoubleData
  242. {
  243. public:
  244. btVector3DoubleData m_bvhAabbMin;
  245. btVector3DoubleData m_bvhAabbMax;
  246. btVector3DoubleData m_bvhQuantization;
  247. int m_curNodeIndex;
  248. int m_useQuantization;
  249. int m_numContiguousLeafNodes;
  250. int m_numQuantizedContiguousNodes;
  251. btOptimizedBvhNodeDoubleData *m_contiguousNodesPtr;
  252. btQuantizedBvhNodeData *m_quantizedContiguousNodesPtr;
  253. int m_traversalMode;
  254. int m_numSubtreeHeaders;
  255. btBvhSubtreeInfoData *m_subTreeInfoPtr;
  256. };
  257. // -------------------------------------------------- //
  258. class btCollisionShapeData
  259. {
  260. public:
  261. char *m_name;
  262. int m_shapeType;
  263. char m_padding[4];
  264. };
  265. // -------------------------------------------------- //
  266. class btStaticPlaneShapeData
  267. {
  268. public:
  269. btCollisionShapeData m_collisionShapeData;
  270. btVector3FloatData m_localScaling;
  271. btVector3FloatData m_planeNormal;
  272. float m_planeConstant;
  273. char m_pad[4];
  274. };
  275. // -------------------------------------------------- //
  276. class btConvexInternalShapeData
  277. {
  278. public:
  279. btCollisionShapeData m_collisionShapeData;
  280. btVector3FloatData m_localScaling;
  281. btVector3FloatData m_implicitShapeDimensions;
  282. float m_collisionMargin;
  283. int m_padding;
  284. };
  285. // -------------------------------------------------- //
  286. class btPositionAndRadius
  287. {
  288. public:
  289. btVector3FloatData m_pos;
  290. float m_radius;
  291. };
  292. // -------------------------------------------------- //
  293. class btMultiSphereShapeData
  294. {
  295. public:
  296. btConvexInternalShapeData m_convexInternalShapeData;
  297. btPositionAndRadius *m_localPositionArrayPtr;
  298. int m_localPositionArraySize;
  299. char m_padding[4];
  300. };
  301. // -------------------------------------------------- //
  302. class btIntIndexData
  303. {
  304. public:
  305. int m_value;
  306. };
  307. // -------------------------------------------------- //
  308. class btShortIntIndexData
  309. {
  310. public:
  311. short m_value;
  312. char m_pad[2];
  313. };
  314. // -------------------------------------------------- //
  315. class btShortIntIndexTripletData
  316. {
  317. public:
  318. short m_values[3];
  319. char m_pad[2];
  320. };
  321. // -------------------------------------------------- //
  322. class btCharIndexTripletData
  323. {
  324. public:
  325. char m_values[3];
  326. char m_pad;
  327. };
  328. // -------------------------------------------------- //
  329. class btMeshPartData
  330. {
  331. public:
  332. btVector3FloatData *m_vertices3f;
  333. btVector3DoubleData *m_vertices3d;
  334. btIntIndexData *m_indices32;
  335. btShortIntIndexTripletData *m_3indices16;
  336. btCharIndexTripletData *m_3indices8;
  337. btShortIntIndexData *m_indices16;
  338. int m_numTriangles;
  339. int m_numVertices;
  340. };
  341. // -------------------------------------------------- //
  342. class btStridingMeshInterfaceData
  343. {
  344. public:
  345. btMeshPartData *m_meshPartsPtr;
  346. btVector3FloatData m_scaling;
  347. int m_numMeshParts;
  348. char m_padding[4];
  349. };
  350. // -------------------------------------------------- //
  351. class btTriangleMeshShapeData
  352. {
  353. public:
  354. btCollisionShapeData m_collisionShapeData;
  355. btStridingMeshInterfaceData m_meshInterface;
  356. btQuantizedBvhFloatData *m_quantizedFloatBvh;
  357. btQuantizedBvhDoubleData *m_quantizedDoubleBvh;
  358. btTriangleInfoMapData *m_triangleInfoMap;
  359. float m_collisionMargin;
  360. char m_pad3[4];
  361. };
  362. // -------------------------------------------------- //
  363. class btScaledTriangleMeshShapeData
  364. {
  365. public:
  366. btTriangleMeshShapeData m_trimeshShapeData;
  367. btVector3FloatData m_localScaling;
  368. };
  369. // -------------------------------------------------- //
  370. class btCompoundShapeChildData
  371. {
  372. public:
  373. btTransformFloatData m_transform;
  374. btCollisionShapeData *m_childShape;
  375. int m_childShapeType;
  376. float m_childMargin;
  377. };
  378. // -------------------------------------------------- //
  379. class btCompoundShapeData
  380. {
  381. public:
  382. btCollisionShapeData m_collisionShapeData;
  383. btCompoundShapeChildData *m_childShapePtr;
  384. int m_numChildShapes;
  385. float m_collisionMargin;
  386. };
  387. // -------------------------------------------------- //
  388. class btCylinderShapeData
  389. {
  390. public:
  391. btConvexInternalShapeData m_convexInternalShapeData;
  392. int m_upAxis;
  393. char m_padding[4];
  394. };
  395. // -------------------------------------------------- //
  396. class btConeShapeData
  397. {
  398. public:
  399. btConvexInternalShapeData m_convexInternalShapeData;
  400. int m_upIndex;
  401. char m_padding[4];
  402. };
  403. // -------------------------------------------------- //
  404. class btCapsuleShapeData
  405. {
  406. public:
  407. btConvexInternalShapeData m_convexInternalShapeData;
  408. int m_upAxis;
  409. char m_padding[4];
  410. };
  411. // -------------------------------------------------- //
  412. class btTriangleInfoData
  413. {
  414. public:
  415. int m_flags;
  416. float m_edgeV0V1Angle;
  417. float m_edgeV1V2Angle;
  418. float m_edgeV2V0Angle;
  419. };
  420. // -------------------------------------------------- //
  421. class btTriangleInfoMapData
  422. {
  423. public:
  424. int *m_hashTablePtr;
  425. int *m_nextPtr;
  426. btTriangleInfoData *m_valueArrayPtr;
  427. int *m_keyArrayPtr;
  428. float m_convexEpsilon;
  429. float m_planarEpsilon;
  430. float m_equalVertexThreshold;
  431. float m_edgeDistanceThreshold;
  432. float m_zeroAreaThreshold;
  433. int m_nextSize;
  434. int m_hashTableSize;
  435. int m_numValues;
  436. int m_numKeys;
  437. char m_padding[4];
  438. };
  439. // -------------------------------------------------- //
  440. class btGImpactMeshShapeData
  441. {
  442. public:
  443. btCollisionShapeData m_collisionShapeData;
  444. btStridingMeshInterfaceData m_meshInterface;
  445. btVector3FloatData m_localScaling;
  446. float m_collisionMargin;
  447. int m_gimpactSubType;
  448. };
  449. // -------------------------------------------------- //
  450. class btConvexHullShapeData
  451. {
  452. public:
  453. btConvexInternalShapeData m_convexInternalShapeData;
  454. btVector3FloatData *m_unscaledPointsFloatPtr;
  455. btVector3DoubleData *m_unscaledPointsDoublePtr;
  456. int m_numUnscaledPoints;
  457. char m_padding3[4];
  458. };
  459. // -------------------------------------------------- //
  460. class btCollisionObjectDoubleData
  461. {
  462. public:
  463. void *m_broadphaseHandle;
  464. void *m_collisionShape;
  465. btCollisionShapeData *m_rootCollisionShape;
  466. char *m_name;
  467. btTransformDoubleData m_worldTransform;
  468. btTransformDoubleData m_interpolationWorldTransform;
  469. btVector3DoubleData m_interpolationLinearVelocity;
  470. btVector3DoubleData m_interpolationAngularVelocity;
  471. btVector3DoubleData m_anisotropicFriction;
  472. double m_contactProcessingThreshold;
  473. double m_deactivationTime;
  474. double m_friction;
  475. double m_rollingFriction;
  476. double m_restitution;
  477. double m_hitFraction;
  478. double m_ccdSweptSphereRadius;
  479. double m_ccdMotionThreshold;
  480. int m_hasAnisotropicFriction;
  481. int m_collisionFlags;
  482. int m_islandTag1;
  483. int m_companionId;
  484. int m_activationState1;
  485. int m_internalType;
  486. int m_checkCollideWith;
  487. char m_padding[4];
  488. };
  489. // -------------------------------------------------- //
  490. class btCollisionObjectFloatData
  491. {
  492. public:
  493. void *m_broadphaseHandle;
  494. void *m_collisionShape;
  495. btCollisionShapeData *m_rootCollisionShape;
  496. char *m_name;
  497. btTransformFloatData m_worldTransform;
  498. btTransformFloatData m_interpolationWorldTransform;
  499. btVector3FloatData m_interpolationLinearVelocity;
  500. btVector3FloatData m_interpolationAngularVelocity;
  501. btVector3FloatData m_anisotropicFriction;
  502. float m_contactProcessingThreshold;
  503. float m_deactivationTime;
  504. float m_friction;
  505. float m_rollingFriction;
  506. float m_restitution;
  507. float m_hitFraction;
  508. float m_ccdSweptSphereRadius;
  509. float m_ccdMotionThreshold;
  510. int m_hasAnisotropicFriction;
  511. int m_collisionFlags;
  512. int m_islandTag1;
  513. int m_companionId;
  514. int m_activationState1;
  515. int m_internalType;
  516. int m_checkCollideWith;
  517. char m_padding[4];
  518. };
  519. // -------------------------------------------------- //
  520. class btContactSolverInfoDoubleData
  521. {
  522. public:
  523. double m_tau;
  524. double m_damping;
  525. double m_friction;
  526. double m_timeStep;
  527. double m_restitution;
  528. double m_maxErrorReduction;
  529. double m_sor;
  530. double m_erp;
  531. double m_erp2;
  532. double m_globalCfm;
  533. double m_splitImpulsePenetrationThreshold;
  534. double m_splitImpulseTurnErp;
  535. double m_linearSlop;
  536. double m_warmstartingFactor;
  537. double m_maxGyroscopicForce;
  538. double m_singleAxisRollingFrictionThreshold;
  539. int m_numIterations;
  540. int m_solverMode;
  541. int m_restingContactRestitutionThreshold;
  542. int m_minimumSolverBatchSize;
  543. int m_splitImpulse;
  544. char m_padding[4];
  545. };
  546. // -------------------------------------------------- //
  547. class btContactSolverInfoFloatData
  548. {
  549. public:
  550. float m_tau;
  551. float m_damping;
  552. float m_friction;
  553. float m_timeStep;
  554. float m_restitution;
  555. float m_maxErrorReduction;
  556. float m_sor;
  557. float m_erp;
  558. float m_erp2;
  559. float m_globalCfm;
  560. float m_splitImpulsePenetrationThreshold;
  561. float m_splitImpulseTurnErp;
  562. float m_linearSlop;
  563. float m_warmstartingFactor;
  564. float m_maxGyroscopicForce;
  565. float m_singleAxisRollingFrictionThreshold;
  566. int m_numIterations;
  567. int m_solverMode;
  568. int m_restingContactRestitutionThreshold;
  569. int m_minimumSolverBatchSize;
  570. int m_splitImpulse;
  571. char m_padding[4];
  572. };
  573. // -------------------------------------------------- //
  574. class btDynamicsWorldDoubleData
  575. {
  576. public:
  577. btContactSolverInfoDoubleData m_solverInfo;
  578. btVector3DoubleData m_gravity;
  579. };
  580. // -------------------------------------------------- //
  581. class btDynamicsWorldFloatData
  582. {
  583. public:
  584. btContactSolverInfoFloatData m_solverInfo;
  585. btVector3FloatData m_gravity;
  586. };
  587. // -------------------------------------------------- //
  588. class btRigidBodyFloatData
  589. {
  590. public:
  591. btCollisionObjectFloatData m_collisionObjectData;
  592. btMatrix3x3FloatData m_invInertiaTensorWorld;
  593. btVector3FloatData m_linearVelocity;
  594. btVector3FloatData m_angularVelocity;
  595. btVector3FloatData m_angularFactor;
  596. btVector3FloatData m_linearFactor;
  597. btVector3FloatData m_gravity;
  598. btVector3FloatData m_gravity_acceleration;
  599. btVector3FloatData m_invInertiaLocal;
  600. btVector3FloatData m_totalForce;
  601. btVector3FloatData m_totalTorque;
  602. float m_inverseMass;
  603. float m_linearDamping;
  604. float m_angularDamping;
  605. float m_additionalDampingFactor;
  606. float m_additionalLinearDampingThresholdSqr;
  607. float m_additionalAngularDampingThresholdSqr;
  608. float m_additionalAngularDampingFactor;
  609. float m_linearSleepingThreshold;
  610. float m_angularSleepingThreshold;
  611. int m_additionalDamping;
  612. };
  613. // -------------------------------------------------- //
  614. class btRigidBodyDoubleData
  615. {
  616. public:
  617. btCollisionObjectDoubleData m_collisionObjectData;
  618. btMatrix3x3DoubleData m_invInertiaTensorWorld;
  619. btVector3DoubleData m_linearVelocity;
  620. btVector3DoubleData m_angularVelocity;
  621. btVector3DoubleData m_angularFactor;
  622. btVector3DoubleData m_linearFactor;
  623. btVector3DoubleData m_gravity;
  624. btVector3DoubleData m_gravity_acceleration;
  625. btVector3DoubleData m_invInertiaLocal;
  626. btVector3DoubleData m_totalForce;
  627. btVector3DoubleData m_totalTorque;
  628. double m_inverseMass;
  629. double m_linearDamping;
  630. double m_angularDamping;
  631. double m_additionalDampingFactor;
  632. double m_additionalLinearDampingThresholdSqr;
  633. double m_additionalAngularDampingThresholdSqr;
  634. double m_additionalAngularDampingFactor;
  635. double m_linearSleepingThreshold;
  636. double m_angularSleepingThreshold;
  637. int m_additionalDamping;
  638. char m_padding[4];
  639. };
  640. // -------------------------------------------------- //
  641. class btConstraintInfo1
  642. {
  643. public:
  644. int m_numConstraintRows;
  645. int nub;
  646. };
  647. // -------------------------------------------------- //
  648. class btTypedConstraintFloatData
  649. {
  650. public:
  651. btRigidBodyFloatData *m_rbA;
  652. btRigidBodyFloatData *m_rbB;
  653. char *m_name;
  654. int m_objectType;
  655. int m_userConstraintType;
  656. int m_userConstraintId;
  657. int m_needsFeedback;
  658. float m_appliedImpulse;
  659. float m_dbgDrawSize;
  660. int m_disableCollisionsBetweenLinkedBodies;
  661. int m_overrideNumSolverIterations;
  662. float m_breakingImpulseThreshold;
  663. int m_isEnabled;
  664. };
  665. // -------------------------------------------------- //
  666. class btTypedConstraintData
  667. {
  668. public:
  669. bInvalidHandle *m_rbA;
  670. bInvalidHandle *m_rbB;
  671. char *m_name;
  672. int m_objectType;
  673. int m_userConstraintType;
  674. int m_userConstraintId;
  675. int m_needsFeedback;
  676. float m_appliedImpulse;
  677. float m_dbgDrawSize;
  678. int m_disableCollisionsBetweenLinkedBodies;
  679. int m_overrideNumSolverIterations;
  680. float m_breakingImpulseThreshold;
  681. int m_isEnabled;
  682. };
  683. // -------------------------------------------------- //
  684. class btTypedConstraintDoubleData
  685. {
  686. public:
  687. btRigidBodyDoubleData *m_rbA;
  688. btRigidBodyDoubleData *m_rbB;
  689. char *m_name;
  690. int m_objectType;
  691. int m_userConstraintType;
  692. int m_userConstraintId;
  693. int m_needsFeedback;
  694. double m_appliedImpulse;
  695. double m_dbgDrawSize;
  696. int m_disableCollisionsBetweenLinkedBodies;
  697. int m_overrideNumSolverIterations;
  698. double m_breakingImpulseThreshold;
  699. int m_isEnabled;
  700. char padding[4];
  701. };
  702. // -------------------------------------------------- //
  703. class btPoint2PointConstraintFloatData
  704. {
  705. public:
  706. btTypedConstraintData m_typeConstraintData;
  707. btVector3FloatData m_pivotInA;
  708. btVector3FloatData m_pivotInB;
  709. };
  710. // -------------------------------------------------- //
  711. class btPoint2PointConstraintDoubleData2
  712. {
  713. public:
  714. btTypedConstraintDoubleData m_typeConstraintData;
  715. btVector3DoubleData m_pivotInA;
  716. btVector3DoubleData m_pivotInB;
  717. };
  718. // -------------------------------------------------- //
  719. class btPoint2PointConstraintDoubleData
  720. {
  721. public:
  722. btTypedConstraintData m_typeConstraintData;
  723. btVector3DoubleData m_pivotInA;
  724. btVector3DoubleData m_pivotInB;
  725. };
  726. // -------------------------------------------------- //
  727. class btHingeConstraintDoubleData
  728. {
  729. public:
  730. btTypedConstraintData m_typeConstraintData;
  731. btTransformDoubleData m_rbAFrame;
  732. btTransformDoubleData m_rbBFrame;
  733. int m_useReferenceFrameA;
  734. int m_angularOnly;
  735. int m_enableAngularMotor;
  736. float m_motorTargetVelocity;
  737. float m_maxMotorImpulse;
  738. float m_lowerLimit;
  739. float m_upperLimit;
  740. float m_limitSoftness;
  741. float m_biasFactor;
  742. float m_relaxationFactor;
  743. };
  744. // -------------------------------------------------- //
  745. class btHingeConstraintFloatData
  746. {
  747. public:
  748. btTypedConstraintData m_typeConstraintData;
  749. btTransformFloatData m_rbAFrame;
  750. btTransformFloatData m_rbBFrame;
  751. int m_useReferenceFrameA;
  752. int m_angularOnly;
  753. int m_enableAngularMotor;
  754. float m_motorTargetVelocity;
  755. float m_maxMotorImpulse;
  756. float m_lowerLimit;
  757. float m_upperLimit;
  758. float m_limitSoftness;
  759. float m_biasFactor;
  760. float m_relaxationFactor;
  761. };
  762. // -------------------------------------------------- //
  763. class btHingeConstraintDoubleData2
  764. {
  765. public:
  766. btTypedConstraintDoubleData m_typeConstraintData;
  767. btTransformDoubleData m_rbAFrame;
  768. btTransformDoubleData m_rbBFrame;
  769. int m_useReferenceFrameA;
  770. int m_angularOnly;
  771. int m_enableAngularMotor;
  772. double m_motorTargetVelocity;
  773. double m_maxMotorImpulse;
  774. double m_lowerLimit;
  775. double m_upperLimit;
  776. double m_limitSoftness;
  777. double m_biasFactor;
  778. double m_relaxationFactor;
  779. char m_padding1[4];
  780. };
  781. // -------------------------------------------------- //
  782. class btConeTwistConstraintDoubleData
  783. {
  784. public:
  785. btTypedConstraintDoubleData m_typeConstraintData;
  786. btTransformDoubleData m_rbAFrame;
  787. btTransformDoubleData m_rbBFrame;
  788. double m_swingSpan1;
  789. double m_swingSpan2;
  790. double m_twistSpan;
  791. double m_limitSoftness;
  792. double m_biasFactor;
  793. double m_relaxationFactor;
  794. double m_damping;
  795. };
  796. // -------------------------------------------------- //
  797. class btConeTwistConstraintData
  798. {
  799. public:
  800. btTypedConstraintData m_typeConstraintData;
  801. btTransformFloatData m_rbAFrame;
  802. btTransformFloatData m_rbBFrame;
  803. float m_swingSpan1;
  804. float m_swingSpan2;
  805. float m_twistSpan;
  806. float m_limitSoftness;
  807. float m_biasFactor;
  808. float m_relaxationFactor;
  809. float m_damping;
  810. char m_pad[4];
  811. };
  812. // -------------------------------------------------- //
  813. class btGeneric6DofConstraintData
  814. {
  815. public:
  816. btTypedConstraintData m_typeConstraintData;
  817. btTransformFloatData m_rbAFrame;
  818. btTransformFloatData m_rbBFrame;
  819. btVector3FloatData m_linearUpperLimit;
  820. btVector3FloatData m_linearLowerLimit;
  821. btVector3FloatData m_angularUpperLimit;
  822. btVector3FloatData m_angularLowerLimit;
  823. int m_useLinearReferenceFrameA;
  824. int m_useOffsetForConstraintFrame;
  825. };
  826. // -------------------------------------------------- //
  827. class btGeneric6DofConstraintDoubleData2
  828. {
  829. public:
  830. btTypedConstraintDoubleData m_typeConstraintData;
  831. btTransformDoubleData m_rbAFrame;
  832. btTransformDoubleData m_rbBFrame;
  833. btVector3DoubleData m_linearUpperLimit;
  834. btVector3DoubleData m_linearLowerLimit;
  835. btVector3DoubleData m_angularUpperLimit;
  836. btVector3DoubleData m_angularLowerLimit;
  837. int m_useLinearReferenceFrameA;
  838. int m_useOffsetForConstraintFrame;
  839. };
  840. // -------------------------------------------------- //
  841. class btGeneric6DofSpringConstraintData
  842. {
  843. public:
  844. btGeneric6DofConstraintData m_6dofData;
  845. int m_springEnabled[6];
  846. float m_equilibriumPoint[6];
  847. float m_springStiffness[6];
  848. float m_springDamping[6];
  849. };
  850. // -------------------------------------------------- //
  851. class btGeneric6DofSpringConstraintDoubleData2
  852. {
  853. public:
  854. btGeneric6DofConstraintDoubleData2 m_6dofData;
  855. int m_springEnabled[6];
  856. double m_equilibriumPoint[6];
  857. double m_springStiffness[6];
  858. double m_springDamping[6];
  859. };
  860. // -------------------------------------------------- //
  861. class btGeneric6DofSpring2ConstraintData
  862. {
  863. public:
  864. btTypedConstraintData m_typeConstraintData;
  865. btTransformFloatData m_rbAFrame;
  866. btTransformFloatData m_rbBFrame;
  867. btVector3FloatData m_linearUpperLimit;
  868. btVector3FloatData m_linearLowerLimit;
  869. btVector3FloatData m_linearBounce;
  870. btVector3FloatData m_linearStopERP;
  871. btVector3FloatData m_linearStopCFM;
  872. btVector3FloatData m_linearMotorERP;
  873. btVector3FloatData m_linearMotorCFM;
  874. btVector3FloatData m_linearTargetVelocity;
  875. btVector3FloatData m_linearMaxMotorForce;
  876. btVector3FloatData m_linearServoTarget;
  877. btVector3FloatData m_linearSpringStiffness;
  878. btVector3FloatData m_linearSpringDamping;
  879. btVector3FloatData m_linearEquilibriumPoint;
  880. char m_linearEnableMotor[4];
  881. char m_linearServoMotor[4];
  882. char m_linearEnableSpring[4];
  883. char m_linearSpringStiffnessLimited[4];
  884. char m_linearSpringDampingLimited[4];
  885. char m_padding1[4];
  886. btVector3FloatData m_angularUpperLimit;
  887. btVector3FloatData m_angularLowerLimit;
  888. btVector3FloatData m_angularBounce;
  889. btVector3FloatData m_angularStopERP;
  890. btVector3FloatData m_angularStopCFM;
  891. btVector3FloatData m_angularMotorERP;
  892. btVector3FloatData m_angularMotorCFM;
  893. btVector3FloatData m_angularTargetVelocity;
  894. btVector3FloatData m_angularMaxMotorForce;
  895. btVector3FloatData m_angularServoTarget;
  896. btVector3FloatData m_angularSpringStiffness;
  897. btVector3FloatData m_angularSpringDamping;
  898. btVector3FloatData m_angularEquilibriumPoint;
  899. char m_angularEnableMotor[4];
  900. char m_angularServoMotor[4];
  901. char m_angularEnableSpring[4];
  902. char m_angularSpringStiffnessLimited[4];
  903. char m_angularSpringDampingLimited[4];
  904. int m_rotateOrder;
  905. };
  906. // -------------------------------------------------- //
  907. class btGeneric6DofSpring2ConstraintDoubleData2
  908. {
  909. public:
  910. btTypedConstraintDoubleData m_typeConstraintData;
  911. btTransformDoubleData m_rbAFrame;
  912. btTransformDoubleData m_rbBFrame;
  913. btVector3DoubleData m_linearUpperLimit;
  914. btVector3DoubleData m_linearLowerLimit;
  915. btVector3DoubleData m_linearBounce;
  916. btVector3DoubleData m_linearStopERP;
  917. btVector3DoubleData m_linearStopCFM;
  918. btVector3DoubleData m_linearMotorERP;
  919. btVector3DoubleData m_linearMotorCFM;
  920. btVector3DoubleData m_linearTargetVelocity;
  921. btVector3DoubleData m_linearMaxMotorForce;
  922. btVector3DoubleData m_linearServoTarget;
  923. btVector3DoubleData m_linearSpringStiffness;
  924. btVector3DoubleData m_linearSpringDamping;
  925. btVector3DoubleData m_linearEquilibriumPoint;
  926. char m_linearEnableMotor[4];
  927. char m_linearServoMotor[4];
  928. char m_linearEnableSpring[4];
  929. char m_linearSpringStiffnessLimited[4];
  930. char m_linearSpringDampingLimited[4];
  931. char m_padding1[4];
  932. btVector3DoubleData m_angularUpperLimit;
  933. btVector3DoubleData m_angularLowerLimit;
  934. btVector3DoubleData m_angularBounce;
  935. btVector3DoubleData m_angularStopERP;
  936. btVector3DoubleData m_angularStopCFM;
  937. btVector3DoubleData m_angularMotorERP;
  938. btVector3DoubleData m_angularMotorCFM;
  939. btVector3DoubleData m_angularTargetVelocity;
  940. btVector3DoubleData m_angularMaxMotorForce;
  941. btVector3DoubleData m_angularServoTarget;
  942. btVector3DoubleData m_angularSpringStiffness;
  943. btVector3DoubleData m_angularSpringDamping;
  944. btVector3DoubleData m_angularEquilibriumPoint;
  945. char m_angularEnableMotor[4];
  946. char m_angularServoMotor[4];
  947. char m_angularEnableSpring[4];
  948. char m_angularSpringStiffnessLimited[4];
  949. char m_angularSpringDampingLimited[4];
  950. int m_rotateOrder;
  951. };
  952. // -------------------------------------------------- //
  953. class btSliderConstraintData
  954. {
  955. public:
  956. btTypedConstraintData m_typeConstraintData;
  957. btTransformFloatData m_rbAFrame;
  958. btTransformFloatData m_rbBFrame;
  959. float m_linearUpperLimit;
  960. float m_linearLowerLimit;
  961. float m_angularUpperLimit;
  962. float m_angularLowerLimit;
  963. int m_useLinearReferenceFrameA;
  964. int m_useOffsetForConstraintFrame;
  965. };
  966. // -------------------------------------------------- //
  967. class btSliderConstraintDoubleData
  968. {
  969. public:
  970. btTypedConstraintDoubleData m_typeConstraintData;
  971. btTransformDoubleData m_rbAFrame;
  972. btTransformDoubleData m_rbBFrame;
  973. double m_linearUpperLimit;
  974. double m_linearLowerLimit;
  975. double m_angularUpperLimit;
  976. double m_angularLowerLimit;
  977. int m_useLinearReferenceFrameA;
  978. int m_useOffsetForConstraintFrame;
  979. };
  980. // -------------------------------------------------- //
  981. class btGearConstraintFloatData
  982. {
  983. public:
  984. btTypedConstraintFloatData m_typeConstraintData;
  985. btVector3FloatData m_axisInA;
  986. btVector3FloatData m_axisInB;
  987. float m_ratio;
  988. char m_padding[4];
  989. };
  990. // -------------------------------------------------- //
  991. class btGearConstraintDoubleData
  992. {
  993. public:
  994. btTypedConstraintDoubleData m_typeConstraintData;
  995. btVector3DoubleData m_axisInA;
  996. btVector3DoubleData m_axisInB;
  997. double m_ratio;
  998. };
  999. // -------------------------------------------------- //
  1000. class SoftBodyMaterialData
  1001. {
  1002. public:
  1003. float m_linearStiffness;
  1004. float m_angularStiffness;
  1005. float m_volumeStiffness;
  1006. int m_flags;
  1007. };
  1008. // -------------------------------------------------- //
  1009. class SoftBodyNodeData
  1010. {
  1011. public:
  1012. SoftBodyMaterialData *m_material;
  1013. btVector3FloatData m_position;
  1014. btVector3FloatData m_previousPosition;
  1015. btVector3FloatData m_velocity;
  1016. btVector3FloatData m_accumulatedForce;
  1017. btVector3FloatData m_normal;
  1018. float m_inverseMass;
  1019. float m_area;
  1020. int m_attach;
  1021. int m_pad;
  1022. };
  1023. // -------------------------------------------------- //
  1024. class SoftBodyLinkData
  1025. {
  1026. public:
  1027. SoftBodyMaterialData *m_material;
  1028. int m_nodeIndices[2];
  1029. float m_restLength;
  1030. int m_bbending;
  1031. };
  1032. // -------------------------------------------------- //
  1033. class SoftBodyFaceData
  1034. {
  1035. public:
  1036. btVector3FloatData m_normal;
  1037. SoftBodyMaterialData *m_material;
  1038. int m_nodeIndices[3];
  1039. float m_restArea;
  1040. };
  1041. // -------------------------------------------------- //
  1042. class SoftBodyTetraData
  1043. {
  1044. public:
  1045. btVector3FloatData m_c0[4];
  1046. SoftBodyMaterialData *m_material;
  1047. int m_nodeIndices[4];
  1048. float m_restVolume;
  1049. float m_c1;
  1050. float m_c2;
  1051. int m_pad;
  1052. };
  1053. // -------------------------------------------------- //
  1054. class SoftRigidAnchorData
  1055. {
  1056. public:
  1057. btMatrix3x3FloatData m_c0;
  1058. btVector3FloatData m_c1;
  1059. btVector3FloatData m_localFrame;
  1060. bInvalidHandle *m_rigidBody;
  1061. int m_nodeIndex;
  1062. float m_c2;
  1063. };
  1064. // -------------------------------------------------- //
  1065. class SoftBodyConfigData
  1066. {
  1067. public:
  1068. int m_aeroModel;
  1069. float m_baumgarte;
  1070. float m_damping;
  1071. float m_drag;
  1072. float m_lift;
  1073. float m_pressure;
  1074. float m_volume;
  1075. float m_dynamicFriction;
  1076. float m_poseMatch;
  1077. float m_rigidContactHardness;
  1078. float m_kineticContactHardness;
  1079. float m_softContactHardness;
  1080. float m_anchorHardness;
  1081. float m_softRigidClusterHardness;
  1082. float m_softKineticClusterHardness;
  1083. float m_softSoftClusterHardness;
  1084. float m_softRigidClusterImpulseSplit;
  1085. float m_softKineticClusterImpulseSplit;
  1086. float m_softSoftClusterImpulseSplit;
  1087. float m_maxVolume;
  1088. float m_timeScale;
  1089. int m_velocityIterations;
  1090. int m_positionIterations;
  1091. int m_driftIterations;
  1092. int m_clusterIterations;
  1093. int m_collisionFlags;
  1094. };
  1095. // -------------------------------------------------- //
  1096. class SoftBodyPoseData
  1097. {
  1098. public:
  1099. btMatrix3x3FloatData m_rot;
  1100. btMatrix3x3FloatData m_scale;
  1101. btMatrix3x3FloatData m_aqq;
  1102. btVector3FloatData m_com;
  1103. btVector3FloatData *m_positions;
  1104. float *m_weights;
  1105. int m_numPositions;
  1106. int m_numWeigts;
  1107. int m_bvolume;
  1108. int m_bframe;
  1109. float m_restVolume;
  1110. int m_pad;
  1111. };
  1112. // -------------------------------------------------- //
  1113. class SoftBodyClusterData
  1114. {
  1115. public:
  1116. btTransformFloatData m_framexform;
  1117. btMatrix3x3FloatData m_locii;
  1118. btMatrix3x3FloatData m_invwi;
  1119. btVector3FloatData m_com;
  1120. btVector3FloatData m_vimpulses[2];
  1121. btVector3FloatData m_dimpulses[2];
  1122. btVector3FloatData m_lv;
  1123. btVector3FloatData m_av;
  1124. btVector3FloatData *m_framerefs;
  1125. int *m_nodeIndices;
  1126. float *m_masses;
  1127. int m_numFrameRefs;
  1128. int m_numNodes;
  1129. int m_numMasses;
  1130. float m_idmass;
  1131. float m_imass;
  1132. int m_nvimpulses;
  1133. int m_ndimpulses;
  1134. float m_ndamping;
  1135. float m_ldamping;
  1136. float m_adamping;
  1137. float m_matching;
  1138. float m_maxSelfCollisionImpulse;
  1139. float m_selfCollisionImpulseFactor;
  1140. int m_containsAnchor;
  1141. int m_collide;
  1142. int m_clusterIndex;
  1143. };
  1144. // -------------------------------------------------- //
  1145. class btSoftBodyJointData
  1146. {
  1147. public:
  1148. void *m_bodyA;
  1149. void *m_bodyB;
  1150. btVector3FloatData m_refs[2];
  1151. float m_cfm;
  1152. float m_erp;
  1153. float m_split;
  1154. int m_delete;
  1155. btVector3FloatData m_relPosition[2];
  1156. int m_bodyAtype;
  1157. int m_bodyBtype;
  1158. int m_jointType;
  1159. int m_pad;
  1160. };
  1161. // -------------------------------------------------- //
  1162. class btSoftBodyFloatData
  1163. {
  1164. public:
  1165. btCollisionObjectFloatData m_collisionObjectData;
  1166. SoftBodyPoseData *m_pose;
  1167. SoftBodyMaterialData **m_materials;
  1168. SoftBodyNodeData *m_nodes;
  1169. SoftBodyLinkData *m_links;
  1170. SoftBodyFaceData *m_faces;
  1171. SoftBodyTetraData *m_tetrahedra;
  1172. SoftRigidAnchorData *m_anchors;
  1173. SoftBodyClusterData *m_clusters;
  1174. btSoftBodyJointData *m_joints;
  1175. int m_numMaterials;
  1176. int m_numNodes;
  1177. int m_numLinks;
  1178. int m_numFaces;
  1179. int m_numTetrahedra;
  1180. int m_numAnchors;
  1181. int m_numClusters;
  1182. int m_numJoints;
  1183. SoftBodyConfigData m_config;
  1184. };
  1185. // -------------------------------------------------- //
  1186. class btMultiBodyLinkDoubleData
  1187. {
  1188. public:
  1189. btQuaternionDoubleData m_zeroRotParentToThis;
  1190. btVector3DoubleData m_parentComToThisComOffset;
  1191. btVector3DoubleData m_thisPivotToThisComOffset;
  1192. btVector3DoubleData m_jointAxisTop[6];
  1193. btVector3DoubleData m_jointAxisBottom[6];
  1194. btVector3DoubleData m_linkInertia;
  1195. double m_linkMass;
  1196. int m_parentIndex;
  1197. int m_jointType;
  1198. int m_dofCount;
  1199. int m_posVarCount;
  1200. double m_jointPos[7];
  1201. double m_jointVel[6];
  1202. double m_jointTorque[6];
  1203. double m_jointDamping;
  1204. double m_jointFriction;
  1205. char *m_linkName;
  1206. char *m_jointName;
  1207. btCollisionObjectDoubleData *m_linkCollider;
  1208. char *m_paddingPtr;
  1209. };
  1210. // -------------------------------------------------- //
  1211. class btMultiBodyLinkFloatData
  1212. {
  1213. public:
  1214. btQuaternionFloatData m_zeroRotParentToThis;
  1215. btVector3FloatData m_parentComToThisComOffset;
  1216. btVector3FloatData m_thisPivotToThisComOffset;
  1217. btVector3FloatData m_jointAxisTop[6];
  1218. btVector3FloatData m_jointAxisBottom[6];
  1219. btVector3FloatData m_linkInertia;
  1220. int m_dofCount;
  1221. float m_linkMass;
  1222. int m_parentIndex;
  1223. int m_jointType;
  1224. float m_jointPos[7];
  1225. float m_jointVel[6];
  1226. float m_jointTorque[6];
  1227. int m_posVarCount;
  1228. float m_jointDamping;
  1229. float m_jointFriction;
  1230. char *m_linkName;
  1231. char *m_jointName;
  1232. btCollisionObjectFloatData *m_linkCollider;
  1233. char *m_paddingPtr;
  1234. };
  1235. // -------------------------------------------------- //
  1236. class btMultiBodyDoubleData
  1237. {
  1238. public:
  1239. btTransformDoubleData m_baseWorldTransform;
  1240. btVector3DoubleData m_baseInertia;
  1241. double m_baseMass;
  1242. char *m_baseName;
  1243. btMultiBodyLinkDoubleData *m_links;
  1244. btCollisionObjectDoubleData *m_baseCollider;
  1245. char *m_paddingPtr;
  1246. int m_numLinks;
  1247. char m_padding[4];
  1248. };
  1249. // -------------------------------------------------- //
  1250. class btMultiBodyFloatData
  1251. {
  1252. public:
  1253. char *m_baseName;
  1254. btMultiBodyLinkFloatData *m_links;
  1255. btCollisionObjectFloatData *m_baseCollider;
  1256. btTransformFloatData m_baseWorldTransform;
  1257. btVector3FloatData m_baseInertia;
  1258. float m_baseMass;
  1259. int m_numLinks;
  1260. };
  1261. }
  1262. #endif//__BULLET_H__