Bullet Collision Detection & Physics Library: btBoxCollision.h File Reference

Bullet Collision Detection & Physics Library

Classes | Macros | Enumerations | Functions
btBoxCollision.h File Reference
`#include "LinearMath/btTransform.h"`
Include dependency graph for btBoxCollision.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes
class | BT_BOX_BOX_TRANSFORM_CACHE
| Class for transforming a model1 to the space of model0. More...
class | btAABB
| Axis aligned box. More...

## Macros
#define | BT_SWAP_NUMBERS(a, b)
| Swap numbers. More...
#define | BT_MAX(a, b) (a < b ? b : a)
#define | BT_MIN(a, b) (a > b ? b : a)
#define | BT_GREATER(x, y) btFabs(x) > (y)
#define | BT_MAX3(a, b, c) BT_MAX(a, BT_MAX(b, c))
#define | BT_MIN3(a, b, c) BT_MIN(a, BT_MIN(b, c))
#define | TEST_CROSS_EDGE_BOX_MCR(edge, absolute_edge, pointa, pointb, _extend, i_dir_0, i_dir_1, i_comp_0, i_comp_1)
#define | TEST_CROSS_EDGE_BOX_X_AXIS_MCR(edge, absolute_edge, pointa, pointb, _extend)
#define | TEST_CROSS_EDGE_BOX_Y_AXIS_MCR(edge, absolute_edge, pointa, pointb, _extend)
#define | TEST_CROSS_EDGE_BOX_Z_AXIS_MCR(edge, absolute_edge, pointa, pointb, _extend)
#define | BOX_PLANE_EPSILON 0.000001f

## Enumerations
enum | eBT_PLANE_INTERSECTION_TYPE { BT_CONST_BACK_PLANE = 0, BT_CONST_COLLIDE_PLANE, BT_CONST_FRONT_PLANE }

## Functions
btScalar | bt_mat3_dot_col (const btMatrix3x3 &mat, const btVector3 &vec3, int colindex)
| Returns the dot product between a vec3f and the col of a matrix. More...
bool | btCompareTransformsEqual (const btTransform &t1, const btTransform &t2)
| Compairison of transformation objects. More...

## Macro Definition Documentation

## ◆ BOX_PLANE_EPSILON

#define BOX_PLANE_EPSILON 0.000001f

Definition at line 212 of file btBoxCollision.h.

## ◆ BT_GREATER

#define BT_GREATER | ( |  | x,
|  |  | y
| ) |  | btFabs(x) > (y)

Definition at line 41 of file btBoxCollision.h.

## ◆ BT_MAX

#define BT_MAX | ( |  | a,
|  |  | b
| ) |  | (a < b ? b : a)

Definition at line 38 of file btBoxCollision.h.

## ◆ BT_MAX3

#define BT_MAX3 | ( |  | a,
|  |  | b,
|  |  | c
| ) |  | BT_MAX(a, BT_MAX(b, c))

Definition at line 43 of file btBoxCollision.h.

## ◆ BT_MIN

#define BT_MIN | ( |  | a,
|  |  | b
| ) |  | (a > b ? b : a)

Definition at line 39 of file btBoxCollision.h.

## ◆ BT_MIN3

#define BT_MIN3 | ( |  | a,
|  |  | b,
|  |  | c
| ) |  | BT_MIN(a, BT_MIN(b, c))

Definition at line 44 of file btBoxCollision.h.

## ◆ BT_SWAP_NUMBERS

#define BT_SWAP_NUMBERS | ( |  | a,
|  |  | b
| ) |  |

Value:
{ \
a = a + b; \
b = a - b; \
a = a - b; \
}

Swap numbers.

Definition at line 31 of file btBoxCollision.h.

## ◆ TEST_CROSS_EDGE_BOX_MCR

#define TEST_CROSS_EDGE_BOX_MCR | ( |  | edge,
|  |  | absolute_edge,
|  |  | pointa,
|  |  | pointb,
|  |  | _extend,
|  |  | i_dir_0,
|  |  | i_dir_1,
|  |  | i_comp_0,
|  |  | i_comp_1
| ) |  |

Value:
{ \
const btScalar dir0 = -edge[i_dir_0]; \
const btScalar dir1 = edge[i_dir_1]; \
btScalar pmin = pointa[i_comp_0] * dir0 + pointa[i_comp_1] * dir1; \
btScalar pmax = pointb[i_comp_0] * dir0 + pointb[i_comp_1] * dir1; \
if (pmin > pmax) \
{ \
BT_SWAP_NUMBERS(pmin, pmax); \
} \
const btScalar abs_dir0 = absolute_edge[i_dir_0]; \
const btScalar abs_dir1 = absolute_edge[i_dir_1]; \
const btScalar rad = _extend[i_comp_0] * abs_dir0 + _extend[i_comp_1] * abs_dir1; \
if (pmin > rad || -rad > pmax) return false; \
}

Definition at line 113 of file btBoxCollision.h.

## ◆ TEST_CROSS_EDGE_BOX_X_AXIS_MCR

#define TEST_CROSS_EDGE_BOX_X_AXIS_MCR | ( |  | edge,
|  |  | absolute_edge,
|  |  | pointa,
|  |  | pointb,
|  |  | _extend
| ) |  |

Value:
{ \
TEST_CROSS_EDGE_BOX_MCR(edge, absolute_edge, pointa, pointb, _extend, 2, 1, 1, 2); \
}

Definition at line 129 of file btBoxCollision.h.

## ◆ TEST_CROSS_EDGE_BOX_Y_AXIS_MCR

#define TEST_CROSS_EDGE_BOX_Y_AXIS_MCR | ( |  | edge,
|  |  | absolute_edge,
|  |  | pointa,
|  |  | pointb,
|  |  | _extend
| ) |  |

Value:
{ \
TEST_CROSS_EDGE_BOX_MCR(edge, absolute_edge, pointa, pointb, _extend, 0, 2, 2, 0); \
}

Definition at line 134 of file btBoxCollision.h.

## ◆ TEST_CROSS_EDGE_BOX_Z_AXIS_MCR

#define TEST_CROSS_EDGE_BOX_Z_AXIS_MCR | ( |  | edge,
|  |  | absolute_edge,
|  |  | pointa,
|  |  | pointb,
|  |  | _extend
| ) |  |

Value:
{ \
TEST_CROSS_EDGE_BOX_MCR(edge, absolute_edge, pointa, pointb, _extend, 1, 0, 0, 1); \
}

Definition at line 139 of file btBoxCollision.h.

## Enumeration Type Documentation

## ◆ eBT_PLANE_INTERSECTION_TYPE

enum eBT_PLANE_INTERSECTION_TYPE

Enumerator
BT_CONST_BACK_PLANE |
BT_CONST_COLLIDE_PLANE |
BT_CONST_FRONT_PLANE |

Definition at line 45 of file btBoxCollision.h.

## Function Documentation

## ◆ bt_mat3_dot_col()

btScalar bt_mat3_dot_col | ( | const btMatrix3x3 & | mat,
|  | const btVector3 & | vec3,
|  | int | colindex
| ) |  |
| inline

Returns the dot product between a vec3f and the col of a matrix.

Definition at line 144 of file btBoxCollision.h.

## ◆ btCompareTransformsEqual()

bool btCompareTransformsEqual | ( | const btTransform & | t1,
|  | const btTransform & | t2
| ) |  |
| inline

Compairison of transformation objects.

Definition at line 610 of file btBoxCollision.h.

btScalar
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
Definition: btScalar.h:314