16 #ifndef BT_HEIGHTFIELD_TERRAIN_SHAPE_H
17 #define BT_HEIGHTFIELD_TERRAIN_SHAPE_H
122 virtual btScalar getRawHeightFieldValue(
int x,
int y)
const;
123 void quantizeWithClamp(
int* out,
const btVector3& point,
int isMax)
const;
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);
168 m_flipTriangleWinding = flipTriangleWinding;
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"; }
197 m_userValue3 = value;
205 return m_triangleInfoMap;
209 return m_triangleInfoMap;
213 m_triangleInfoMap = map;
217 return m_heightfieldDataUnsignedChar;
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...
The btConcaveShape class provides an interface for non-moving (static) concave shapes.
btHeightfieldTerrainShape simulates a 2D heightfield terrain
bool m_flipTriangleWinding
void setFlipTriangleWinding(bool flipTriangleWinding)
virtual const char * getName() const
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)
bool m_useDiamondSubdivision
void setUserValue3(btScalar value)
const short * m_heightfieldDataShort
const struct btTriangleInfoMap * getTriangleInfoMap() const
btScalar getUserValue3() const
const void * m_heightfieldDataUnknown
BT_DECLARE_ALIGNED_ALLOCATOR()
const unsigned char * getHeightfieldRawData() const
const unsigned char * m_heightfieldDataUnsignedChar
int m_heightStickWidth
terrain data
const btScalar * m_heightfieldDataFloat
btAlignedObjectArray< Range > m_vboundsGrid
void setTriangleInfoMap(btTriangleInfoMap *map)
struct btTriangleInfoMap * getTriangleInfoMap()
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...