00001 #ifndef OSDL_BOUNDING_BOX_H_
00002 #define OSDL_BOUNDING_BOX_H_
00003
00004
00005 #include "OSDLEngineCommon.h"
00006
00007 #include "Ceylan.h"
00008
00009 #include <string>
00010 #include <list>
00011
00012
00013
00014
00015 namespace OSDL
00016 {
00017
00018
00019 namespace Engine
00020 {
00021
00022
00023
00025 class OSDL_DLL BoundingBoxException : public EngineException
00026 {
00027 public:
00028
00029 explicit BoundingBoxException( const std::string & reason )
00030 throw() ;
00031 virtual ~BoundingBoxException() throw() ;
00032
00033 } ;
00034
00035
00036
00057 enum IntersectionResult {
00058 isSeparate,
00059 contains,
00060 isContained,
00061 intersects,
00062 isEqual
00063 } ;
00064
00065
00066
00102 class OSDL_DLL BoundingBox : public Ceylan::TextDisplayable
00103 {
00104
00105
00106 public:
00107
00108
00121 explicit BoundingBox() throw() ;
00122
00123
00128 virtual ~BoundingBox() throw() ;
00129
00130
00154 virtual IntersectionResult doesIntersectWith(
00155 BoundingBox & other ) throw( BoundingBoxException ) = 0 ;
00156
00157
00158
00159
00160
00161
00170 static std::string InterpretIntersectionResult(
00171 IntersectionResult result ) throw( BoundingBoxException ) ;
00172
00173
00174
00175 private:
00176
00177
00178
00179
00188 explicit BoundingBox( const BoundingBox & source ) throw() ;
00189
00190
00199 BoundingBox & operator= ( const BoundingBox & source ) throw() ;
00200
00201
00202
00203 } ;
00204
00205 }
00206
00207 }
00208
00209
00210 #endif // OSDL_BOUNDING_BOX_H_
00211