16#ifndef BT_HEIGHTFIELD_TERRAIN_SHAPE_H
17#define BT_HEIGHTFIELD_TERRAIN_SHAPE_H
130 void initialize(
int heightStickWidth,
int heightStickLength,
131 const void* heightfieldData,
btScalar heightScale,
145 const void* heightfieldData,
btScalar heightScale,
157 btHeightfieldTerrainShape(
int heightStickWidth,
int heightStickLength,
const void* heightfieldData,
btScalar maxHeight,
int upAxis,
bool useFloatData,
bool flipQuadEdges);
176 virtual void setLocalScaling(
const btVector3& scaling);
178 virtual const btVector3& getLocalScaling()
const;
180 void getVertex(
int x,
int y,
btVector3& vertex)
const;
184 void buildAccelerator(
int chunkSize = 16);
185 void clearAccelerator();
192 virtual const char*
getName()
const {
return "HEIGHTFIELD"; }
PHY_ScalarType
PHY_ScalarType enumerates possible scalar types.
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define ATTRIBUTE_ALIGNED16(a)
The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It...
bool m_flipTriangleWinding
void setFlipTriangleWinding(bool flipTriangleWinding)
void setUseZigzagSubdivision(bool useZigzagSubdivision=true)
could help compatibility with Ogre heightfields. See https://code.google.com/p/bullet/issues/detail?...
PHY_ScalarType m_heightDataType
bool m_useZigzagSubdivision
void setUseDiamondSubdivision(bool useDiamondSubdivision=true)
struct btTriangleInfoMap * getTriangleInfoMap()
bool m_useDiamondSubdivision
void setUserValue3(btScalar value)
virtual btScalar getRawHeightFieldValue(int x, int y) const
This returns the "raw" (user's initial) height, not the actual height.
const short * m_heightfieldDataShort
void quantizeWithClamp(int *out, const btVector3 &point, int isMax) const
given input vector, return quantized version
const struct btTriangleInfoMap * getTriangleInfoMap() const
btScalar getUserValue3() const
const void * m_heightfieldDataUnknown
const unsigned char * getHeightfieldRawData() const
BT_DECLARE_ALIGNED_ALLOCATOR()
btHeightfieldTerrainShape(int heightStickWidth, int heightStickLength, const void *heightfieldData, btScalar heightScale, btScalar minHeight, btScalar maxHeight, int upAxis, PHY_ScalarType heightDataType, bool flipQuadEdges)
preferred constructor
const unsigned char * m_heightfieldDataUnsignedChar
virtual const char * getName() const
int m_heightStickWidth
terrain data
const btScalar * m_heightfieldDataFloat
btAlignedObjectArray< Range > m_vboundsGrid
void setTriangleInfoMap(btTriangleInfoMap *map)
void initialize(int heightStickWidth, int heightStickLength, const void *heightfieldData, btScalar heightScale, btScalar minHeight, btScalar maxHeight, int upAxis, PHY_ScalarType heightDataType, bool flipQuadEdges)
protected initialization
struct btTriangleInfoMap * m_triangleInfoMap
The btTriangleCallback provides a callback for each overlapping triangle when calling processAllTrian...
btVector3 can be used to represent 3D points and vectors.
The btTriangleInfoMap stores edge angle information for some triangles. You can compute this informat...