/*! \file bounding_volume.h \brief Definition of a bounding volume for collision detection algorithms */ #ifndef _BOUNDING_VOLUME_H #define _BOUNDING_VOLUME_H #include "base_object.h" #include "abstract_model.h" class Vector; template class tList; //! An abstract class representing a bounding volume class BoundingVolume : public BaseObject { public: BoundingVolume(); virtual ~BoundingVolume(); inline const Vector* getCenter() const { return this->center; } sVec3D* getVertices() const { return this->vertices; } virtual void mergeWith(const BoundingVolume &bv) = NULL; virtual void drawBV(int currentDepth, const int depth) const = NULL; virtual void drawBVPolygon(int currentDepth, const int depth) const = NULL; virtual void drawBVBlended(int currentDepth, const int depth) const = NULL; public: Vector* center; //!< Center point of box sVec3D* vertices; //!< if CD_STORE_VERTICES enabled, this is the place, where the vert. will be sotred int numOfVertices; //!< number of vertices in the vertices buffer }; #endif /* _BOUNDING_VOLUME_H */