Bullet Collision Detection & Physics Library
|
#include <math.h>
#include <stdlib.h>
#include <float.h>
Go to the source code of this file.
Classes | |
struct | btInfMaskConverter |
struct | btTypedObject |
rudimentary class to provide type info More... | |
Macros | |
#define | BT_BULLET_VERSION 288 |
#define | BT_NOT_EMPTY_FILE |
#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_INFINITY (btInfinityMask.mask) |
#define | BT_DECLARE_ALIGNED_ALLOCATOR() |
#define | SIMD_PI btScalar(3.1415926535897932384626433832795029) |
#define | SIMD_2_PI (btScalar(2.0) * SIMD_PI) |
#define | SIMD_HALF_PI (SIMD_PI * btScalar(0.5)) |
#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 | btRecip(x) (btScalar(1.0) / btScalar(x)) |
#define | SIMD_EPSILON FLT_EPSILON |
#define | SIMD_INFINITY FLT_MAX |
#define | BT_ONE 1.0f |
#define | BT_ZERO 0.0f |
#define | BT_TWO 2.0f |
#define | BT_HALF 0.5f |
#define | BT_DECLARE_HANDLE(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 () |
int | btGetInfinityMask () |
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) |
template<typename T > | |
void | btSetZero (T *a, int n) |
btScalar | btLargeDot (const btScalar *a, const btScalar *b, int n) |
btScalar | btNormalizeAngle (btScalar angleInRadians) |
template<typename T > | |
T * | btAlignPointer (T *unalignedPtr, size_t alignment) |
align a pointer to the provided alignment, upwards More... | |
Variables | |
static btInfMaskConverter | btInfinityMask = 0x7F800000 |
#define ATTRIBUTE_ALIGNED128 | ( | a | ) | __declspec (align(128)) a |
Definition at line 86 of file btScalar.h.
#define ATTRIBUTE_ALIGNED16 | ( | a | ) | __declspec(align(16)) a |
Definition at line 84 of file btScalar.h.
#define ATTRIBUTE_ALIGNED64 | ( | a | ) | __declspec(align(64)) a |
Definition at line 85 of file btScalar.h.
#define BT_BULLET_VERSION 288 |
Definition at line 28 of file btScalar.h.
#define BT_DECLARE_ALIGNED_ALLOCATOR | ( | ) |
Definition at line 405 of file btScalar.h.
#define BT_DECLARE_HANDLE | ( | name | ) |
Definition at line 571 of file btScalar.h.
#define BT_HALF 0.5f |
Definition at line 528 of file btScalar.h.
#define BT_INFINITY (btInfinityMask.mask) |
Definition at line 385 of file btScalar.h.
#define BT_LARGE_FLOAT 1e18f |
Definition at line 296 of file btScalar.h.
#define BT_NOT_EMPTY_FILE |
Definition at line 56 of file btScalar.h.
#define BT_ONE 1.0f |
Definition at line 525 of file btScalar.h.
#define BT_TWO 2.0f |
Definition at line 527 of file btScalar.h.
#define BT_ZERO 0.0f |
Definition at line 526 of file btScalar.h.
#define btAssert | ( | x | ) |
Definition at line 133 of file btScalar.h.
Definition at line 583 of file btScalar.h.
#define btFullAssert | ( | x | ) |
Definition at line 136 of file btScalar.h.
#define btLikely | ( | _c | ) | _c |
Definition at line 138 of file btScalar.h.
Definition at line 513 of file btScalar.h.
#define btRecipSqrt | ( | x | ) | ((btScalar)(btScalar(1.0) / btSqrt(btScalar(x)))) /* reciprocal square root */ |
Definition at line 512 of file btScalar.h.
#define btUnlikely | ( | _c | ) | _c |
Definition at line 139 of file btScalar.h.
Definition at line 507 of file btScalar.h.
Definition at line 510 of file btScalar.h.
#define SIMD_EPSILON FLT_EPSILON |
Definition at line 523 of file btScalar.h.
#define SIMD_FORCE_INLINE __forceinline |
Definition at line 83 of file btScalar.h.
Definition at line 508 of file btScalar.h.
#define SIMD_INFINITY FLT_MAX |
Definition at line 524 of file btScalar.h.
#define SIMD_PI btScalar(3.1415926535897932384626433832795029) |
Definition at line 506 of file btScalar.h.
Definition at line 509 of file btScalar.h.
#define SIMDSQRT12 btScalar(0.7071067811865475244008443621048490) |
Definition at line 511 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 294 of file btScalar.h.
Definition at line 481 of file btScalar.h.
T* btAlignPointer | ( | T * | unalignedPtr, |
size_t | alignment | ||
) |
align a pointer to the provided alignment, upwards
Definition at line 794 of file btScalar.h.
Definition at line 489 of file btScalar.h.
Definition at line 497 of file btScalar.h.
Definition at line 498 of file btScalar.h.
Definition at line 533 of file btScalar.h.
Definition at line 478 of file btScalar.h.
Definition at line 569 of file btScalar.h.
Definition at line 554 of file btScalar.h.
Definition at line 499 of file btScalar.h.
Definition at line 477 of file btScalar.h.
Definition at line 502 of file btScalar.h.
Definition at line 578 of file btScalar.h.
|
inline |
Definition at line 552 of file btScalar.h.
|
inline |
Definition at line 386 of file btScalar.h.
|
inline |
Definition at line 30 of file btScalar.h.
Definition at line 558 of file btScalar.h.
|
inline |
Definition at line 563 of file btScalar.h.
Definition at line 730 of file btScalar.h.
Definition at line 500 of file btScalar.h.
|
inline |
Definition at line 585 of file btScalar.h.
Definition at line 761 of file btScalar.h.
Definition at line 501 of file btScalar.h.
Definition at line 568 of file btScalar.h.
|
inline |
Definition at line 613 of file btScalar.h.
|
inline |
Definition at line 607 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 597 of file btScalar.h.
|
inline |
Definition at line 719 of file btScalar.h.
Definition at line 479 of file btScalar.h.
Definition at line 446 of file btScalar.h.
|
inline |
Definition at line 623 of file btScalar.h.
|
inline |
Definition at line 641 of file btScalar.h.
|
inline |
Definition at line 646 of file btScalar.h.
|
inline |
Definition at line 636 of file btScalar.h.
|
inline |
Definition at line 631 of file btScalar.h.
|
inline |
Definition at line 686 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 657 of file btScalar.h.
Definition at line 480 of file btScalar.h.
|
inline |
Definition at line 701 of file btScalar.h.
|
inline |
Definition at line 671 of file btScalar.h.
|
static |
Definition at line 384 of file btScalar.h.