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

Go to the source code of this file.

Namespaces

 Isis
 Namespace for ISIS/Bullet specific routines.
 

Macros

#define BT_USE_DOUBLE_PRECISION   1
 Unless noted otherwise, the portions of Isis written by the USGS are public domain. More...
 
#define B3_USE_DOUBLE_PRECISION   1
 

Functions

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

Macro Definition Documentation

◆ B3_USE_DOUBLE_PRECISION

#define B3_USE_DOUBLE_PRECISION   1

◆ BT_USE_DOUBLE_PRECISION

#define BT_USE_DOUBLE_PRECISION   1

Unless noted otherwise, the portions of Isis written by the USGS are public domain.

See individual third-party library and package descriptions for intellectual property information, user agreements, and related information.

Although Isis has been used by the USGS, no warranty, expressed or implied, is made by the USGS as to the accuracy and functioning of such software and related material nor shall the fact of distribution constitute any such warranty, and no responsibility is assumed by the USGS in connection therewith.

For additional information, launch $ISISROOT/doc//documents/Disclaimers/Disclaimers.html in a browser or see the Privacy & Disclaimers page on the Isis website, http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on http://www.usgs.gov/privacy.html. 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