Isis Developer Reference
IsisBullet.h File Reference
#include <btBulletDynamicsCommon.h>

Go to the source code of this file.

Namespaces

namespace  Isis
 This is free and unencumbered software released into the public domain.
 

Macros

#define BT_USE_DOUBLE_PRECISION   1
 This is free and unencumbered software released into the public domain.
 
#define B3_USE_DOUBLE_PRECISION   1
 

Functions

int Isis::bt_MaxBodyParts ()
 Maximum number of parts/object.
 
unsigned long Isis::bt_MaxTriangles ()
 Maximum number of triangles/part.
 
int Isis::b3_MaxBodyParts ()
 Maximum number of parts/object in the Bullet 3 API.
 
unsigned long Isis::b3_MaxTriangles ()
 Maximum number of triangles/part in the Bullet 3 API.
 

Macro Definition Documentation

◆ B3_USE_DOUBLE_PRECISION

#define B3_USE_DOUBLE_PRECISION   1

◆ BT_USE_DOUBLE_PRECISION

#define BT_USE_DOUBLE_PRECISION   1

This is free and unencumbered software released into the public domain.

The authors of ISIS do not claim copyright on the contents of this file. For more details about the LICENSE terms and the AUTHORS, you will find files of those names at the top level of this repository.

Bullet Physics ISIS-specific include file

This file must be included before any other Bullet includes because there are some very specific configuration/build settings in the version of Bullet we are using.

First, ISIS requires Bullet Physics to be built with the BtScalar type set to double precision. The Bullet build settings in the CMAKE system explicitly sets the BtScalar type to double via a command line MACRO definition. This file enforces the proper Bullet environment for use in the ISIS system.

Second, we made an explicit declaration of the number of bits to be used in the Bullet triangle compression scheme that specifies parts/object and the number of triangles/part. We allow for 16 parts (4 bits) and 134,217,728 triangles/part (28, really 27 due to sign bit). This definition is made in both btQuantizedBvh.h and b3QuantizedBvh.h. The settings is:

#define MAX_NUM_PARTS_IN_BITS 4

NOTE: ISIS requires a unique Bullet binary dependancy that may not be compatable in other applications linked using a different configuration of their Bullet system.

This defines limits of 16 separate sections of a target body where each part can contain up to 134M triangles.

And, Python support for the Mac platform was broken since we use the MacPorts version 3.5 (at the time we built Bullet). For Apple platforms, incorrect assumptions were made for the include path in examples/pybullet/pybullet.c.

We also check for compatibility with the Bullet 3 (B3*) environment but do not include the environment. Only the BT* environment is invoked for consistency. Include the B3 includes anywhere after this file to use that API.

Author
2017-03-16 Kris Becker