|
Bullet Collision Detection & Physics Library
|
#include <math.h>#include <stdlib.h>#include <float.h>

Go to the source code of this file.
Classes | |
| struct | btTypedObject |
| rudimentary class to provide type info More... | |
Macros | |
| #define | BT_BULLET_VERSION 281 |
| #define | SIMD_FORCE_INLINE __forceinline |
| #define | ATTRIBUTE_ALIGNED16(a) __declspec(align(16)) a |
| #define | ATTRIBUTE_ALIGNED64(a) __declspec(align(64)) a |
| #define | ATTRIBUTE_ALIGNED128(a) __declspec (align(128)) a |
| #define | btAssert(x) |
| #define | btFullAssert(x) |
| #define | btLikely(_c) _c |
| #define | btUnlikely(_c) _c |
| #define | BT_LARGE_FLOAT 1e18f |
| #define | BT_DECLARE_ALIGNED_ALLOCATOR() |
| #define | SIMD_2_PI btScalar(6.283185307179586232) |
| #define | SIMD_PI (SIMD_2_PI * btScalar(0.5)) |
| #define | SIMD_HALF_PI (SIMD_2_PI * btScalar(0.25)) |
| #define | SIMD_RADS_PER_DEG (SIMD_2_PI / btScalar(360.0)) |
| #define | SIMD_DEGS_PER_RAD (btScalar(360.0) / SIMD_2_PI) |
| #define | SIMDSQRT12 btScalar(0.7071067811865475244008443621048490) |
| #define | btRecipSqrt(x) ((btScalar)(btScalar(1.0)/btSqrt(btScalar(x)))) /* reciprocal square root */ |
| #define | SIMD_EPSILON FLT_EPSILON |
| #define | SIMD_INFINITY FLT_MAX |
| #define | BT_DECLARE_HANDLE(name) typedef struct name##__ { int unused; } *name |
| #define | btFsels(a, b, c) (btScalar)btFsel(a,b,c) |
Typedefs | |
| typedef float | btScalar |
| The btScalar type abstracts floating point numbers, to easily switch between double and single floating point precision. More... | |
Functions | |
| int | btGetVersion () |
| btScalar | btSqrt (btScalar y) |
| btScalar | btFabs (btScalar x) |
| btScalar | btCos (btScalar x) |
| btScalar | btSin (btScalar x) |
| btScalar | btTan (btScalar x) |
| btScalar | btAcos (btScalar x) |
| btScalar | btAsin (btScalar x) |
| btScalar | btAtan (btScalar x) |
| btScalar | btAtan2 (btScalar x, btScalar y) |
| btScalar | btExp (btScalar x) |
| btScalar | btLog (btScalar x) |
| btScalar | btPow (btScalar x, btScalar y) |
| btScalar | btFmod (btScalar x, btScalar y) |
| btScalar | btAtan2Fast (btScalar y, btScalar x) |
| bool | btFuzzyZero (btScalar x) |
| bool | btEqual (btScalar a, btScalar eps) |
| bool | btGreaterEqual (btScalar a, btScalar eps) |
| int | btIsNegative (btScalar x) |
| btScalar | btRadians (btScalar x) |
| btScalar | btDegrees (btScalar x) |
| btScalar | btFsel (btScalar a, btScalar b, btScalar c) |
| bool | btMachineIsLittleEndian () |
| unsigned | btSelect (unsigned condition, unsigned valueIfConditionNonZero, unsigned valueIfConditionZero) |
| btSelect avoids branches, which makes performance much better for consoles like Playstation 3 and XBox 360 Thanks Phil Knight. More... | |
| int | btSelect (unsigned condition, int valueIfConditionNonZero, int valueIfConditionZero) |
| float | btSelect (unsigned condition, float valueIfConditionNonZero, float valueIfConditionZero) |
| template<typename T > | |
| void | btSwap (T &a, T &b) |
| unsigned | btSwapEndian (unsigned val) |
| unsigned short | btSwapEndian (unsigned short val) |
| unsigned | btSwapEndian (int val) |
| unsigned short | btSwapEndian (short val) |
| unsigned int | btSwapEndianFloat (float d) |
| btSwapFloat uses using char pointers to swap the endianness More... | |
| float | btUnswapEndianFloat (unsigned int a) |
| void | btSwapEndianDouble (double d, unsigned char *dst) |
| double | btUnswapEndianDouble (const unsigned char *src) |
| btScalar | btNormalizeAngle (btScalar angleInRadians) |
| template<typename T > | |
| T * | btAlignPointer (T *unalignedPtr, size_t alignment) |
| align a pointer to the provided alignment, upwards More... | |
| #define ATTRIBUTE_ALIGNED128 | ( | a) | __declspec (align(128)) a |
Definition at line 61 of file btScalar.h.
| #define ATTRIBUTE_ALIGNED16 | ( | a) | __declspec(align(16)) a |
Definition at line 59 of file btScalar.h.
| #define ATTRIBUTE_ALIGNED64 | ( | a) | __declspec(align(64)) a |
Definition at line 60 of file btScalar.h.
| #define BT_BULLET_VERSION 281 |
Definition at line 31 of file btScalar.h.
| #define BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
Definition at line 329 of file btScalar.h.
| #define BT_DECLARE_HANDLE | ( | name) | typedef struct name##__ { int unused; } *name |
Definition at line 457 of file btScalar.h.
| #define BT_LARGE_FLOAT 1e18f |
Definition at line 261 of file btScalar.h.
| #define btAssert | ( | x) |
Definition at line 97 of file btScalar.h.
Definition at line 465 of file btScalar.h.
| #define btFullAssert | ( | x) |
Definition at line 100 of file btScalar.h.
| #define btLikely | ( | _c) | _c |
Definition at line 102 of file btScalar.h.
| #define btRecipSqrt | ( | x) | ((btScalar)(btScalar(1.0)/btSqrt(btScalar(x)))) /* reciprocal square root */ |
Definition at line 413 of file btScalar.h.
| #define btUnlikely | ( | _c) | _c |
Definition at line 103 of file btScalar.h.
| #define SIMD_2_PI btScalar(6.283185307179586232) |
Definition at line 406 of file btScalar.h.
Definition at line 410 of file btScalar.h.
| #define SIMD_EPSILON FLT_EPSILON |
Definition at line 420 of file btScalar.h.
| #define SIMD_FORCE_INLINE __forceinline |
Definition at line 58 of file btScalar.h.
Definition at line 408 of file btScalar.h.
| #define SIMD_INFINITY FLT_MAX |
Definition at line 421 of file btScalar.h.
Definition at line 407 of file btScalar.h.
Definition at line 409 of file btScalar.h.
| #define SIMDSQRT12 btScalar(0.7071067811865475244008443621048490) |
Definition at line 411 of file btScalar.h.
| typedef float btScalar |
The btScalar type abstracts floating point numbers, to easily switch between double and single floating point precision.
Definition at line 259 of file btScalar.h.
Definition at line 383 of file btScalar.h.
| T* btAlignPointer | ( | T * | unalignedPtr, |
| size_t | alignment | ||
| ) |
align a pointer to the provided alignment, upwards
Definition at line 640 of file btScalar.h.
Definition at line 390 of file btScalar.h.
Definition at line 397 of file btScalar.h.
Definition at line 398 of file btScalar.h.
Definition at line 424 of file btScalar.h.
Definition at line 380 of file btScalar.h.
Definition at line 455 of file btScalar.h.
Definition at line 442 of file btScalar.h.
Definition at line 399 of file btScalar.h.
Definition at line 379 of file btScalar.h.
Definition at line 402 of file btScalar.h.
Definition at line 460 of file btScalar.h.
|
inline |
Definition at line 440 of file btScalar.h.
|
inline |
Definition at line 33 of file btScalar.h.
Definition at line 445 of file btScalar.h.
|
inline |
Definition at line 450 of file btScalar.h.
Definition at line 400 of file btScalar.h.
|
inline |
Definition at line 468 of file btScalar.h.
Definition at line 606 of file btScalar.h.
Definition at line 401 of file btScalar.h.
Definition at line 454 of file btScalar.h.
|
inline |
btSelect avoids branches, which makes performance much better for consoles like Playstation 3 and XBox 360 Thanks Phil Knight.
See also http://www.cellperformance.com/articles/2006/04/more_techniques_for_eliminatin_1.html
Definition at line 482 of file btScalar.h.
|
inline |
Definition at line 492 of file btScalar.h.
|
inline |
Definition at line 498 of file btScalar.h.
Definition at line 381 of file btScalar.h.
Definition at line 359 of file btScalar.h.
|
inline |
Definition at line 507 of file btScalar.h.
|
inline |
Definition at line 516 of file btScalar.h.
|
inline |
Definition at line 521 of file btScalar.h.
|
inline |
Definition at line 526 of file btScalar.h.
|
inline |
Definition at line 531 of file btScalar.h.
|
inline |
Definition at line 572 of file btScalar.h.
|
inline |
btSwapFloat uses using char pointers to swap the endianness
btSwapFloat/btSwapDouble will NOT return a float, because the machine might 'correct' invalid floating point values Not all values of sign/exponent/mantissa are valid floating point numbers according to IEEE 754. When a floating point unit is faced with an invalid value, it may actually change the value, or worse, throw an exception. In most systems, running user mode code, you wouldn't get an exception, but instead the hardware/os/runtime will 'fix' the number for you. so instead of returning a float/double, we return integer/long long integer
Definition at line 542 of file btScalar.h.
Definition at line 382 of file btScalar.h.
|
inline |
Definition at line 588 of file btScalar.h.
|
inline |
Definition at line 556 of file btScalar.h.
1.8.4