00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef OSDL_CIRCLE_BOUNDING_BOX_H_
00028 #define OSDL_CIRCLE_BOUNDING_BOX_H_
00029
00030
00031 #include "OSDLBoundingBox2D.h"
00032
00033 #include "Ceylan.h"
00034
00035
00036 #include <string>
00037 #include <list>
00038
00039
00040
00041
00042 namespace OSDL
00043 {
00044
00045
00046
00047 namespace Engine
00048 {
00049
00050
00051
00052
00057 class OSDL_DLL CircleBoundingBox : public BoundingBox2D
00058 {
00059
00060
00061 public:
00062
00063
00072 CircleBoundingBox( Ceylan::Locatable2D & father,
00073 const Ceylan::Maths::Linear::Bipoint & center,
00074 Ceylan::Maths::Real radius ) ;
00075
00076
00077
00082 virtual ~CircleBoundingBox() throw() ;
00083
00084
00085
00090 virtual Ceylan::Maths::Real getRadius() const ;
00091
00092
00093
00100 virtual void setRadius( Ceylan::Maths::Real newRadius ) ;
00101
00102
00103
00115 virtual const std::string toString(
00116 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00117
00118
00119
00145 virtual IntersectionResult doesIntersectWith(
00146 BoundingBox & other ) ;
00147
00148
00149
00150
00151 protected:
00152
00153
00154
00165 virtual IntersectionResult compareWith(
00166 CircleBoundingBox & other ) ;
00167
00168
00169
00185 static CircleBoundingBox & CheckIsCircle( BoundingBox & box ) ;
00186
00187
00189 Ceylan::Maths::Real _radius ;
00190
00191
00192
00193
00194 private:
00195
00196
00197
00206 explicit CircleBoundingBox( const CircleBoundingBox & source ) ;
00207
00208
00209
00218 CircleBoundingBox & operator= (
00219 const CircleBoundingBox & source ) ;
00220
00221
00222 } ;
00223
00224
00225 }
00226
00227 }
00228
00229
00230
00231 #endif // OSDL_CIRCLE_BOUNDING_BOX_H_
00232