UGDK
|
00001 #ifndef PYRAMIDWORKS_GEOMETRY_CIRCLE_H_ 00002 #define PYRAMIDWORKS_GEOMETRY_CIRCLE_H_ 00003 00004 #include <pyramidworks/geometry/geometricshape.h> 00005 00006 namespace pyramidworks { 00007 namespace geometry { 00008 00011 class Circle : public GeometricShape { 00012 public: 00014 Circle(double _radius) : GeometricShape(), radius_(_radius) {} 00015 00017 00018 double radius() const { return radius_; } 00019 00021 00022 void set_radius(double _radius) { radius_ = _radius; } 00023 00024 bool Intersects(const ugdk::Vector2D& this_pos, const GeometricShape *obj, const ugdk::Vector2D& that_pos) const; 00025 bool Intersects(const ugdk::Vector2D& this_pos, const Rect *obj, const ugdk::Vector2D& that_pos) const; 00026 bool Intersects(const ugdk::Vector2D& this_pos, const Circle *obj, const ugdk::Vector2D& that_pos) const; 00027 bool Intersects(const ugdk::Vector2D& this_pos, const ConvexPolygon *obj, const ugdk::Vector2D& that_pos) const; 00028 ugdk::ikdtree::Box<2> GetBoundingBox(const ugdk::Vector2D& position) const; 00029 00030 private: 00031 double radius_; 00032 }; 00033 00034 } // namespace geometry 00035 } // namespace pyramidworks 00036 00037 #endif /* PYRAMIDWORKS_GEOMETRY_CIRCLE_H_ */