Box2D/Box2D/Common/b2Settings.h File Reference

#include <cassert>
#include <cmath>

Go to the source code of this file.

Classes

struct  b2Version

Defines

#define B2_NOT_USED(x)   ((void)(x))
#define b2Assert(A)   assert(A)
#define b2_maxFloat   FLT_MAX
#define b2_epsilon   FLT_EPSILON
#define b2_pi   3.14159265359f
#define b2_maxManifoldPoints   2
 The maximum number of contact points between two convex shapes.
#define b2_maxPolygonVertices   8
 The maximum number of vertices on a convex polygon.
#define b2_aabbExtension   0.1f
#define b2_aabbMultiplier   2.0f
#define b2_linearSlop   0.005f
#define b2_angularSlop   (2.0f / 180.0f * b2_pi)
#define b2_polygonRadius   (2.0f * b2_linearSlop)
#define b2_maxTOIContacts   32
 Maximum number of contacts to be handled to solve a TOI impact.
#define b2_velocityThreshold   1.0f
#define b2_maxLinearCorrection   0.2f
#define b2_maxAngularCorrection   (8.0f / 180.0f * b2_pi)
#define b2_maxTranslation   2.0f
#define b2_maxTranslationSquared   (b2_maxTranslation * b2_maxTranslation)
#define b2_maxRotation   (0.5f * b2_pi)
#define b2_maxRotationSquared   (b2_maxRotation * b2_maxRotation)
#define b2_contactBaumgarte   0.2f
#define b2_timeToSleep   0.5f
 The time that a body must be still before it will go to sleep.
#define b2_linearSleepTolerance   0.01f
 A body cannot sleep if its linear velocity is above this tolerance.
#define b2_angularSleepTolerance   (2.0f / 180.0f * b2_pi)
 A body cannot sleep if its angular velocity is above this tolerance.

Typedefs

typedef signed char int8
typedef signed short int16
typedef signed int int32
typedef unsigned char uint8
typedef unsigned short uint16
typedef unsigned int uint32
typedef float float32

Functions

void * b2Alloc (int32 size)
 Implement this function to use your own memory allocator.
void b2Free (void *mem)
 If you implement b2Alloc, you should also implement this function.
float32 b2MixFriction (float32 friction1, float32 friction2)
 Friction mixing law. Feel free to customize this.
float32 b2MixRestitution (float32 restitution1, float32 restitution2)
 Restitution mixing law. Feel free to customize this.

Variables

b2Version b2_version
 Current version.

Detailed Description

Global tuning constants based on meters-kilograms-seconds (MKS) units.


Define Documentation

#define b2_aabbExtension   0.1f

This is used to fatten AABBs in the dynamic tree. This allows proxies to move by a small amount without triggering a tree adjustment. This is in meters.

#define b2_aabbMultiplier   2.0f

This is used to fatten AABBs in the dynamic tree. This is used to predict the future position based on the current displacement. This is a dimensionless multiplier.

#define b2_angularSleepTolerance   (2.0f / 180.0f * b2_pi)

A body cannot sleep if its angular velocity is above this tolerance.

#define b2_angularSlop   (2.0f / 180.0f * b2_pi)

A small angle used as a collision and constraint tolerance. Usually it is chosen to be numerically significant, but visually insignificant.

#define b2_contactBaumgarte   0.2f

This scale factor controls how fast overlap is resolved. Ideally this would be 1 so that overlap is removed in one time step. However using values close to 1 often lead to overshoot.

#define b2_epsilon   FLT_EPSILON
#define b2_linearSleepTolerance   0.01f

A body cannot sleep if its linear velocity is above this tolerance.

#define b2_linearSlop   0.005f

A small length used as a collision and constraint tolerance. Usually it is chosen to be numerically significant, but visually insignificant.

#define b2_maxAngularCorrection   (8.0f / 180.0f * b2_pi)

The maximum angular position correction used when solving constraints. This helps to prevent overshoot.

#define b2_maxFloat   FLT_MAX
#define b2_maxLinearCorrection   0.2f

The maximum linear position correction used when solving constraints. This helps to prevent overshoot.

#define b2_maxManifoldPoints   2

The maximum number of contact points between two convex shapes.

#define b2_maxPolygonVertices   8

The maximum number of vertices on a convex polygon.

#define b2_maxRotation   (0.5f * b2_pi)

The maximum angular velocity of a body. This limit is very large and is used to prevent numerical problems. You shouldn't need to adjust this.

#define b2_maxRotationSquared   (b2_maxRotation * b2_maxRotation)
#define b2_maxTOIContacts   32

Maximum number of contacts to be handled to solve a TOI impact.

#define b2_maxTranslation   2.0f

The maximum linear velocity of a body. This limit is very large and is used to prevent numerical problems. You shouldn't need to adjust this.

#define b2_maxTranslationSquared   (b2_maxTranslation * b2_maxTranslation)
#define B2_NOT_USED (  )     ((void)(x))
#define b2_pi   3.14159265359f
#define b2_polygonRadius   (2.0f * b2_linearSlop)

The radius of the polygon/edge shape skin. This should not be modified. Making this smaller means polygons will have an insufficient buffer for continuous collision. Making it larger may create artifacts for vertex collision.

#define b2_timeToSleep   0.5f

The time that a body must be still before it will go to sleep.

#define b2_velocityThreshold   1.0f

A velocity threshold for elastic collisions. Any collision with a relative linear velocity below this threshold will be treated as inelastic.

#define b2Assert (  )     assert(A)

Typedef Documentation

typedef float float32
typedef signed short int16
typedef signed int int32
typedef signed char int8
typedef unsigned short uint16
typedef unsigned int uint32
typedef unsigned char uint8

Function Documentation

void* b2Alloc ( int32  size  ) 

Implement this function to use your own memory allocator.

void b2Free ( void *  mem  ) 

If you implement b2Alloc, you should also implement this function.

float32 b2MixFriction ( float32  friction1,
float32  friction2 
) [inline]

Friction mixing law. Feel free to customize this.

float32 b2MixRestitution ( float32  restitution1,
float32  restitution2 
) [inline]

Restitution mixing law. Feel free to customize this.


Variable Documentation

Current version.

Generated on Sat Apr 3 18:18:09 2010 for Box2D by  doxygen 1.6.3