16#ifndef BT_HEIGHTFIELD_TERRAIN_SHAPE_H
17#define BT_HEIGHTFIELD_TERRAIN_SHAPE_H
96 const unsigned char* m_heightfieldDataUnsignedChar;
97 const short* m_heightfieldDataShort;
98 const btScalar* m_heightfieldDataFloat;
99 const void* m_heightfieldDataUnknown;
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);
192 virtual const char*
getName()
const {
return "HEIGHTFIELD"; }
225 return m_heightfieldDataUnsignedChar;
virtual void setLocalScaling(const btVector3 &scaling)
virtual const char * getName() const
virtual void calculateLocalInertia(btScalar mass, btVector3 &inertia) const
virtual void getAabb(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
virtual void getVertex(int i, btVector3 &vtx) const
void setTriangleInfoMap(btTriangleInfoMap *triangleInfoMap)
void performRaycast(btTriangleCallback *callback, const btVector3 &raySource, const btVector3 &rayTarget)
const btTriangleInfoMap * getTriangleInfoMap() const
virtual void processAllTriangles(btTriangleCallback *callback, const btVector3 &aabbMin, const btVector3 &aabbMax) const
btTriangleInfoMap * m_triangleInfoMap
void setUserIndex2(int index)
int getUserIndex2() const
virtual const btVector3 & getLocalScaling() const =0
btAlignedObjectArray< Range > m_vboundsGrid
PHY_ScalarType m_heightDataType
int m_heightStickWidth
terrain data
const unsigned char * getHeightfieldRawData() const
virtual btScalar getRawHeightFieldValue(int x, int y) const
void setUseDiamondSubdivision(bool useDiamondSubdivision=true)
btScalar getUserValue3() const
bool m_useDiamondSubdivision
btHeightfieldTerrainShape(int heightStickWidth, int heightStickLength, const void *heightfieldData, btScalar heightScale, btScalar minHeight, btScalar maxHeight, int upAxis, PHY_ScalarType heightDataType, bool flipQuadEdges)
preferred constructor
bool m_useZigzagSubdivision
void setUseZigzagSubdivision(bool useZigzagSubdivision=true)
could help compatibility with Ogre heightfields. See https://code.google.com/p/bullet/issues/detail?...
bool m_flipTriangleWinding
void setFlipTriangleWinding(bool flipTriangleWinding)
void setUserValue3(btScalar value)
void buildAccelerator(int chunkSize=16)
SIMD_FORCE_INLINE void quantizeWithClamp(unsigned short *out, const btVector3 &point2, int isMax) const
#define BT_DECLARE_ALIGNED_ALLOCATOR()
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define ATTRIBUTE_ALIGNED16(a)
btVector3
btVector3 can be used to represent 3D points and vectors. It has an un-used w component to suit 16-by...
The btTriangleInfoMap stores edge angle information for some triangles. You can compute this informat...