Blender V2.61 - r43446
Defines | Enumerations | Functions

btBoxCollision.h File Reference

#include "LinearMath/btTransform.h"

Go to the source code of this file.

Defines

#define BT_SWAP_NUMBERS(a, b)
 Swap numbers.
#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

SIMD_FORCE_INLINE 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.
 ATTRIBUTE_ALIGNED16 (class) BT_BOX_BOX_TRANSFORM_CACHE
 Class for transforming a model1 to the space of model0.
SIMD_FORCE_INLINE bool btCompareTransformsEqual (const btTransform &t1, const btTransform &t2)
 Compairison of transformation objects.

Define Documentation

#define BOX_PLANE_EPSILON   0.000001f

Definition at line 228 of file btBoxCollision.h.

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

Definition at line 41 of file btBoxCollision.h.

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

Definition at line 38 of file btBoxCollision.h.

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

Definition at line 43 of file btBoxCollision.h.

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

Definition at line 39 of file btBoxCollision.h.

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

Definition at line 44 of file btBoxCollision.h.

#define BT_SWAP_NUMBERS (   a,
 
)
Value:
{ \
    a = a+b; \
    b = a-b; \
    a = a-b; \
}\

Swap numbers.

Definition at line 31 of file btBoxCollision.h.

Referenced by bt_segment_collision().

#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 119 of file btBoxCollision.h.

#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 136 of file btBoxCollision.h.

#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 141 of file btBoxCollision.h.

#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 146 of file btBoxCollision.h.


Enumeration Type Documentation

Enumerator:
BT_CONST_BACK_PLANE 
BT_CONST_COLLIDE_PLANE 
BT_CONST_FRONT_PLANE 

Definition at line 51 of file btBoxCollision.h.


Function Documentation

ATTRIBUTE_ALIGNED16 ( class  )

Class for transforming a model1 to the space of model0.

Axis aligned box.

< Transforms translation of model1 to model 0

< Transforms Rotation of model1 to model 0, equal to R0' * R1

< Absolute value of m_R1to0

Calc the transformation relative 1 to 0. Inverts matrics by transposing

Calcs the full invertion of the matrices. Useful for scaling matrices

Apply a transform to an AABB

Apply a transform to an AABB

Merges a Box

Merges a point

Gets the extend and center

Finds the intersecting box between this box and the other.

Finds the Ray intersection parameter.

Parameters:
aabbAligned box
voriginA vec3f with the origin of the ray
vdirA vec3f with the direction of the ray

transcache is the transformation cache from box to this AABB

Simple test for planes.

test for a triangle, with edges

Definition at line 161 of file btBoxCollision.h.

References btFabs(), dot(), credits_svn_gen::e, btTransform::getBasis(), btTransform::getOrigin(), i, btMatrix3x3::inverse(), btTransform::inverse(), SIMD_FORCE_INLINE, and transform().

SIMD_FORCE_INLINE 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.

Definition at line 153 of file btBoxCollision.h.

SIMD_FORCE_INLINE bool btCompareTransformsEqual ( const btTransform t1,
const btTransform t2 
)

Compairison of transformation objects.

Definition at line 635 of file btBoxCollision.h.

References btTransform::getBasis(), btTransform::getOrigin(), and btMatrix3x3::getRow().