00001 #ifndef OSDL_BOUNDING_BOX_H_ 00002 #define OSDL_BOUNDING_BOX_H_ 00003 00004 00005 #include "OSDLEngineCommon.h" // for EngineException 00006 00007 #include "Ceylan.h" // for VerbosityLevels, inheritance 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 // Static section. 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
1.5.5