Isis Developer Reference
IsisBullet.h
Go to the documentation of this file.
1 #ifndef IsisBullet_h
2 #define IsisBullet_h
3 
8 /* SPDX-License-Identifier: CC0-1.0 */
9 
51 #if defined(BT_SCALAR_H) || defined(B3_SCALAR_H)
52 #if !defined(BT_USE_DOUBLE_PRECISION) && !defined(B3_USE_DOUBLE_PRECISION)
53 #error "*** You must include IsisBullet.h prior to any Bullet includes ***"
54 #endif
55 #endif
56 
57 // ISIS using the Bullet library requires double precision!! This sets the
58 // Bullet::btScalar type to double precision throughout the Bullet API.
59 #define BT_USE_DOUBLE_PRECISION 1
60 #define B3_USE_DOUBLE_PRECISION 1
61 
62 // Go ahead and include all of Bullet here so the define will be applied
63 // universally.
64 #include <btBulletDynamicsCommon.h>
65 
67 namespace Isis {
68 
74 inline int bt_MaxBodyParts() {
75  return ( 1<<MAX_NUM_PARTS_IN_BITS );
76 }
77 
78 
84 inline unsigned long bt_MaxTriangles() {
85  return ( 1<<(31-MAX_NUM_PARTS_IN_BITS) );
86 }
87 
88 
94 inline int b3_MaxBodyParts() {
95  return ( bt_MaxBodyParts() );
96 }
97 
98 
104 inline unsigned long b3_MaxTriangles() {
105  return ( bt_MaxTriangles() );
106 }
107 
108 };
109 
110 #endif
Isis::bt_MaxTriangles
unsigned long bt_MaxTriangles()
Maximum number of triangles/part.
Definition: IsisBullet.h:84
Isis::b3_MaxTriangles
unsigned long b3_MaxTriangles()
Maximum number of triangles/part in the Bullet 3 API.
Definition: IsisBullet.h:104
Isis::bt_MaxBodyParts
int bt_MaxBodyParts()
Maximum number of parts/object.
Definition: IsisBullet.h:74
Isis::b3_MaxBodyParts
int b3_MaxBodyParts()
Maximum number of parts/object in the Bullet 3 API.
Definition: IsisBullet.h:94
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16