#ifndef __BOUND_H__ #define __BOUND_H__ #include "compgeomlibx.h" ////////////////////////////////////////////////////////////////////////////// // CBound Class // class CBound { ////////////////////////////////////////////////// // Enumerated Types // public: enum BoundIntersectionType {bitDisjoint, bitEnclosed, bitIntersect, bitEnveloping, bitMax}; enum BoundBoxType {bbtMin, bbtMax, bbtSize}; ////////////////////////////////////////////////// // Initialization // public: CBound(); virtual ~CBound(); ////////////////////////////////////////////////// // Interface // public: virtual VOID Null() = 0; virtual VOID Insert(const Point &pt) = 0; virtual VOID Insert(CBound *pCBound) = 0; virtual BOOL InBounds(const Point &pt) = 0; virtual BoundIntersectionType Intersect(CBound *pCBound) = 0; public: virtual VOID GetTransformed(CBound *pCBound, Matrix &m) = 0; virtual Point Get(BoundBoxType bbt) = 0; virtual Point GetCenter() = 0; virtual FLOAT GetRadius() = 0; ////////////////////////////////////////////////// // Rendering // public: virtual VOID Draw(); ////////////////////////////////////////////////// // Debugging // public: virtual VOID Display() = 0; ////////////////////////////////////////////////// // Member Variables // protected: }; ////////////////////////////////////////////////////////////////////////////// // Inlined Functions // #endif // __BOUND_H__