/*! \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" class sVect3D; 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; } virtual tList* getVertices() const = NULL; 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; protected: Vector* center; //!< Center point of box tList* verticesBuffer; //!< if CD_STORE_VERTICES enabled, this is the place, where the vert. will be sotred }; #endif /* _BOUNDING_VOLUME_H */