24 int heightStickWidth,
int heightStickLength,
const void* heightfieldData,
29 initialize(heightStickWidth, heightStickLength, heightfieldData,
30 heightScale, minHeight, maxHeight, upAxis, hdt,
45 btScalar heightScale = maxHeight / 65535;
47 initialize(heightStickWidth, heightStickLength, heightfieldData,
48 heightScale, minHeight, maxHeight, upAxis, hdt,
56 int heightStickWidth,
int heightStickLength,
const void* heightfieldData,
72 m_heightStickWidth = heightStickWidth;
73 m_heightStickLength = heightStickLength;
74 m_minHeight = minHeight;
75 m_maxHeight = maxHeight;
76 m_width = (
btScalar) (heightStickWidth - 1);
77 m_length = (
btScalar) (heightStickLength - 1);
78 m_heightScale = heightScale;
79 m_heightfieldDataUnknown = heightfieldData;
80 m_heightDataType = hdt;
81 m_flipQuadEdges = flipQuadEdges;
82 m_useDiamondSubdivision =
false;
83 m_useZigzagSubdivision =
false;
92 m_localAabbMin.setValue(m_minHeight, 0, 0);
93 m_localAabbMax.setValue(m_maxHeight, m_width, m_length);
98 m_localAabbMin.setValue(0, m_minHeight, 0);
99 m_localAabbMax.setValue(m_width, m_maxHeight, m_length);
104 m_localAabbMin.setValue(0, 0, m_minHeight);
105 m_localAabbMax.setValue(m_width, m_length, m_maxHeight);
116 m_localOrigin =
btScalar(0.5) * (m_localAabbMin + m_localAabbMax);
137 btVector3 extent = halfExtents.
dot3(abs_b[0], abs_b[1], abs_b[2]);
140 aabbMin = center - extent;
141 aabbMax = center + extent;
244 return (
int) (x - 0.5);
246 return (
int) (x + 0.5);
292 int quantizedAabbMin[3];
293 int quantizedAabbMax[3];
299 for (
int i = 0; i < 3; ++i) {
300 quantizedAabbMin[i]--;
301 quantizedAabbMax[i]++;
313 if (quantizedAabbMin[1]>startX)
314 startX = quantizedAabbMin[1];
315 if (quantizedAabbMax[1]<endX)
316 endX = quantizedAabbMax[1];
317 if (quantizedAabbMin[2]>startJ)
318 startJ = quantizedAabbMin[2];
319 if (quantizedAabbMax[2]<endJ)
320 endJ = quantizedAabbMax[2];
325 if (quantizedAabbMin[0]>startX)
326 startX = quantizedAabbMin[0];
327 if (quantizedAabbMax[0]<endX)
328 endX = quantizedAabbMax[0];
329 if (quantizedAabbMin[2]>startJ)
330 startJ = quantizedAabbMin[2];
331 if (quantizedAabbMax[2]<endJ)
332 endJ = quantizedAabbMax[2];
337 if (quantizedAabbMin[0]>startX)
338 startX = quantizedAabbMin[0];
339 if (quantizedAabbMax[0]<endX)
340 endX = quantizedAabbMax[0];
341 if (quantizedAabbMin[1]>startJ)
342 startJ = quantizedAabbMin[1];
343 if (quantizedAabbMax[1]<endJ)
344 endJ = quantizedAabbMax[1];
357 for(
int j=startJ; j<endJ; j++)
359 for(
int x=startX; x<endX; x++)