28#pragma warning(disable:4786)
31#include <SOLID/solid.h>
47#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
48# include <sys/types.h>
63#define uint unsigned int
85 return new Box(x,
y, z);
89 return new Cone(radius, height);
167 for (uint i = 0; i < count; ++i) indices[i] = first + i;
174 ComplexList::iterator i =
178 delete (
Shape *)shape;
183 ((
Complex *)shape)->changeBase(base);
184 for (ObjectList::const_iterator i =
objectList.begin();
186 if ((*i).second->shapePtr == (
Shape *)shape) {
201 ObjectList::iterator i =
objectList.find(
object);
209 ObjectList::iterator i =
objectList.find(
object);
276 void * client_data) {
291 for (ComplexList::iterator i =
complexList.begin();
294 for (ObjectList::const_iterator j =
objectList.begin();
296 (*j).second->proceed();
300 for (ObjectList::const_iterator i =
objectList.begin();
356 for (ObjectList::const_iterator j =
objectList.begin();
358 for (ObjectList::const_iterator i =
objectList.begin();
bool intersect(const BBox &a, const BBox &b)
bool common_point(const BBoxNode *tree, const Convex &c, const BBox &bb, const Transform &b2a, Vector &v, Point &pa, Point &pb)
void dtLoadMatrixd(const double *m)
void addPair(ObjectPtr object1, ObjectPtr object2)
void dtVertex(DtScalar x, DtScalar y, DtScalar z)
void dtSetObjectResponse(DtObjectRef object, DtResponse response, DtResponseType type, void *client_data)
vector< const Polytope * > PolyList
DtShapeRef dtBox(DtScalar x, DtScalar y, DtScalar z)
void dtCreateObject(DtObjectRef object, DtShapeRef shape)
void dtResetPairResponse(DtObjectRef object1, DtObjectRef object2)
vector< unsigned int > IndexBuf
vector< Complex * > ComplexList
void dtVertexBase(const Point *base)
map< DtObjectRef, Object * > ObjectList
void dtBegin(DtPolyType type)
void dtVertexIndex(DtIndex index)
void dtClearDefaultResponse()
void dtDeleteShape(DtShapeRef shape)
void dtSetTolerance(DtScalar tol)
DtShapeRef dtCone(DtScalar radius, DtScalar height)
void dtSelectObject(DtObjectRef object)
void dtClearPairResponse(DtObjectRef object1, DtObjectRef object2)
void dtVertexRange(DtPolyType type, DtIndex first, DtCount count)
void dtSetDefaultResponse(DtResponse response, DtResponseType type, void *client_data)
bool object_test(Encounter &e)
void dtVertexIndices(DtPolyType type, DtCount count, const DtIndex *indices)
DtShapeRef dtSphere(DtScalar radius)
void dtScale(DtScalar x, DtScalar y, DtScalar z)
void dtTranslate(DtScalar x, DtScalar y, DtScalar z)
void removePair(ObjectPtr object1, ObjectPtr object2)
set< Encounter > ProxList
void dtMultMatrixf(const float *m)
DtShapeRef dtNewComplexShape()
DtShapeRef dtCylinder(DtScalar radius, DtScalar height)
void dtRotate(DtScalar x, DtScalar y, DtScalar z, DtScalar w)
void dtLoadMatrixf(const float *m)
void dtMultMatrixd(const double *m)
void dtResetObjectResponse(DtObjectRef object)
void dtDeleteObject(DtObjectRef object)
void dtClearObjectResponse(DtObjectRef object)
void dtSetPairResponse(DtObjectRef object1, DtObjectRef object2, DtResponse response, DtResponseType type, void *client_data)
void dtChangeVertexBase(DtShapeRef shape, const Point *base)
bool prev_closest_points(const Object &a, const Object &b, Vector &v, Point &pa, Point &pb)
void(* DtResponse)(void *client_data, DtObjectRef object1, DtObjectRef object2, const DtCollData *coll_data)