| Bullet Collision Detection & Physics Library
    | 
 
 
 
Go to the documentation of this file.
   21         int heightStickWidth, 
int heightStickLength, 
const void* heightfieldData,
 
   25         initialize(heightStickWidth, heightStickLength, heightfieldData,
 
   26                            heightScale, minHeight, maxHeight, upAxis, hdt,
 
   39         btScalar heightScale = maxHeight / 65535;
 
   41         initialize(heightStickWidth, heightStickLength, heightfieldData,
 
   42                            heightScale, minHeight, maxHeight, upAxis, hdt,
 
   47         int heightStickWidth, 
int heightStickLength, 
const void* heightfieldData,
 
  123         btVector3 extent = halfExtents.
dot3(abs_b[0], abs_b[1], abs_b[2]);
 
  126         aabbMin = center - extent;
 
  127         aabbMax = center + extent;
 
  220                 return (
int)(x - 0.5);
 
  222         return (
int)(x + 0.5);
 
  263         int quantizedAabbMin[3];
 
  264         int quantizedAabbMax[3];
 
  270         for (
int i = 0; i < 3; ++i)
 
  272                 quantizedAabbMin[i]--;
 
  273                 quantizedAabbMax[i]++;
 
  285                         if (quantizedAabbMin[1] > startX)
 
  286                                 startX = quantizedAabbMin[1];
 
  287                         if (quantizedAabbMax[1] < endX)
 
  288                                 endX = quantizedAabbMax[1];
 
  289                         if (quantizedAabbMin[2] > startJ)
 
  290                                 startJ = quantizedAabbMin[2];
 
  291                         if (quantizedAabbMax[2] < endJ)
 
  292                                 endJ = quantizedAabbMax[2];
 
  297                         if (quantizedAabbMin[0] > startX)
 
  298                                 startX = quantizedAabbMin[0];
 
  299                         if (quantizedAabbMax[0] < endX)
 
  300                                 endX = quantizedAabbMax[0];
 
  301                         if (quantizedAabbMin[2] > startJ)
 
  302                                 startJ = quantizedAabbMin[2];
 
  303                         if (quantizedAabbMax[2] < endJ)
 
  304                                 endJ = quantizedAabbMax[2];
 
  309                         if (quantizedAabbMin[0] > startX)
 
  310                                 startX = quantizedAabbMin[0];
 
  311                         if (quantizedAabbMax[0] < endX)
 
  312                                 endX = quantizedAabbMax[0];
 
  313                         if (quantizedAabbMin[1] > startJ)
 
  314                                 startJ = quantizedAabbMin[1];
 
  315                         if (quantizedAabbMax[1] < endJ)
 
  316                                 endJ = quantizedAabbMax[1];
 
  326         for (
int j = startJ; j < endJ; j++)
 
  328                 for (
int x = startX; x < endX; x++)
 
  
void initialize(int heightStickWidth, int heightStickLength, const void *heightfieldData, btScalar heightScale, btScalar minHeight, btScalar maxHeight, int upAxis, PHY_ScalarType heightDataType, bool flipQuadEdges)
protected initialization
PHY_ScalarType m_heightDataType
void getVertex(int x, int y, btVector3 &vertex) const
this returns the vertex in bullet-local coordinates
btVector3 dot3(const btVector3 &v0, const btVector3 &v1, const btVector3 &v2) const
void quantizeWithClamp(int *out, const btVector3 &point, int isMax) const
given input vector, return quantized version
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
virtual void setLocalScaling(const btVector3 &scaling)
static int getQuantized(btScalar x)
virtual void calculateLocalInertia(btScalar mass, btVector3 &inertia) const
const btScalar & getX() const
Return the x value.
bool m_useDiamondSubdivision
virtual void processAllTriangles(btTriangleCallback *callback, const btVector3 &aabbMin, const btVector3 &aabbMax) const
process all triangles within the provided axis-aligned bounding box
const btScalar * m_heightfieldDataFloat
virtual const btVector3 & getLocalScaling() const
const void * m_heightfieldDataUnknown
void setMax(const btVector3 &other)
Set each element to the max of the current values and the values of another btVector3.
virtual btScalar getRawHeightFieldValue(int x, int y) const
This returns the "raw" (user's initial) height, not the actual height.
PHY_ScalarType
PHY_ScalarType enumerates possible scalar types.
The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with...
The btTriangleCallback provides a callback for each overlapping triangle when calling processAllTrian...
virtual void getAabb(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
getAabb returns the axis aligned bounding box in the coordinate frame of the given transform t.
btVector3 can be used to represent 3D points and vectors.
bool m_useZigzagSubdivision
const unsigned char * m_heightfieldDataUnsignedChar
btHeightfieldTerrainShape(int heightStickWidth, int heightStickLength, const void *heightfieldData, btScalar heightScale, btScalar minHeight, btScalar maxHeight, int upAxis, PHY_ScalarType heightDataType, bool flipQuadEdges)
preferred constructor
virtual ~btHeightfieldTerrainShape()
virtual void processTriangle(btVector3 *triangle, int partId, int triangleIndex)=0
const btScalar & getZ() const
Return the z value.
int m_heightStickWidth
terrain data
const btScalar & getY() const
Return the y value.
void setMin(const btVector3 &other)
Set each element to the min of the current values and the values of another btVector3.
const short * m_heightfieldDataShort
btMatrix3x3 absolute() const
Return the matrix with all values non negative.
virtual btScalar getMargin() const