16 #ifndef BT_IDEBUG_DRAW__H
17 #define BT_IDEBUG_DRAW__H
41 : m_activeObject(1, 1, 1),
42 m_deactivatedObject(0, 1, 0),
43 m_wantsDeactivationObject(0, 1, 1),
44 m_disabledDeactivationObject(1, 0, 0),
45 m_disabledSimulationObject(1, 1, 0),
47 m_contactPoint(1, 1, 0)
102 drawSpherePatch(center, up, axis, radius, minTh, maxTh, minPs, maxPs, color, stepDegrees,
false);
103 drawSpherePatch(center, up, -axis, radius, minTh, maxTh, minPs, maxPs, color, stepDegrees,
false);
137 btVector3 halfExtents = (to - from) * 0.5f;
141 btVector3 edgecoord(1.f, 1.f, 1.f), pa, pb;
142 for (i = 0; i < 4; i++)
144 for (j = 0; j < 3; j++)
146 pa =
btVector3(edgecoord[0] * halfExtents[0], edgecoord[1] * halfExtents[1],
147 edgecoord[2] * halfExtents[2]);
150 int othercoord = j % 3;
151 edgecoord[othercoord] *= -1.f;
152 pb =
btVector3(edgecoord[0] * halfExtents[0], edgecoord[1] * halfExtents[1],
153 edgecoord[2] * halfExtents[2]);
160 edgecoord[i] *= -1.f;
177 int nSteps = (int)
btFabs((maxAngle - minAngle) / step);
178 if (!nSteps) nSteps = 1;
184 for (
int i = 1; i <= nSteps; i++)
225 drawN = drawS =
true;
227 int n_hor = (int)((maxTh - minTh) / step) + 1;
228 if (n_hor < 2) n_hor = 2;
230 bool isClosed =
false;
245 int n_vert = (int)((maxPs - minPs) / step) + 1;
246 if (n_vert < 2) n_vert = 2;
248 for (
int i = 0; i < n_hor; i++)
253 for (
int j = 0; j < n_vert; j++)
258 pvB[j] = center + cth * cps * iv + cth * sps * jv + sth * kv;
269 drawLine(pvB[j - 1], pvB[j], color);
275 if ((i == (n_hor - 1)) && drawN)
284 if (j == (n_vert - 1))
291 if (((!i) || (i == (n_hor - 1))) && ((!j) || (j == (n_vert - 1))))
337 int stepDegrees = 30;
340 capStart[upAxis] = -halfHeight;
343 capEnd[upAxis] = halfHeight;
348 childTransform.
getOrigin() = transform * capStart;
358 drawSpherePatch(center, up, axis, radius, minTh, maxTh, minPs, maxPs, color,
btScalar(stepDegrees),
false);
364 childTransform.
getOrigin() = transform * capEnd;
373 drawSpherePatch(center, up, axis, radius, minTh, maxTh, minPs, maxPs, color,
btScalar(stepDegrees),
false);
380 for (
int i = 0; i < 360; i += stepDegrees)
392 offsetHeight[upAxis] = halfHeight;
393 int stepDegrees = 30;
395 capStart[upAxis] = -halfHeight;
397 capEnd[upAxis] = halfHeight;
399 for (
int i = 0; i < 360; i += stepDegrees)
409 xaxis[(upAxis + 1) % 3] =
btScalar(1.0);
416 int stepDegrees = 30;
421 offsetHeight[upAxis] = halfHeight;
423 offsetRadius[(upAxis + 1) % 3] = radius;
425 offset2Radius[(upAxis + 2) % 3] = radius;
428 capEnd[upAxis] = -halfHeight;
430 for (
int i = 0; i < 360; i += stepDegrees)
437 drawLine(start + transform.
getBasis() * (offsetHeight), start + transform.
getBasis() * (-offsetHeight + offsetRadius), color);
438 drawLine(start + transform.
getBasis() * (offsetHeight), start + transform.
getBasis() * (-offsetHeight - offsetRadius), color);
439 drawLine(start + transform.
getBasis() * (offsetHeight), start + transform.
getBasis() * (-offsetHeight + offset2Radius), color);
440 drawLine(start + transform.
getBasis() * (offsetHeight), start + transform.
getBasis() * (-offsetHeight - offset2Radius), color);
446 xaxis[(upAxis + 1) % 3] =
btScalar(1.0);
452 btVector3 planeOrigin = planeNormal * planeConst;
456 btVector3 pt0 = planeOrigin + vec0 * vecLen;
457 btVector3 pt1 = planeOrigin - vec0 * vecLen;
458 btVector3 pt2 = planeOrigin + vec1 * vecLen;
459 btVector3 pt3 = planeOrigin - vec1 * vecLen;
460 drawLine(transform * pt0, transform * pt1, color);
461 drawLine(transform * pt2, transform * pt3, color);
473 #endif //BT_IDEBUG_DRAW__H