00001 // This is -*-c++-*- 00002 // 00003 00004 #ifndef CIRCLE2D_H 00005 #define CIRCLE2D_H 00006 00007 #include "Ellipse2D.hpp" 00008 00009 // //////////////////////////////////////////////////////////// 00010 00011 namespace datatypes 00012 { 00013 00014 00016 00021 class Circle2D : public Ellipse2D 00022 { 00023 public: 00025 typedef Ellipse2D base_class; 00026 00028 Circle2D(); 00029 00031 00037 Circle2D(const Point2D& center, value_type radius); 00038 00040 00054 Circle2D(value_type x_center, value_type y_center, value_type radius); 00055 00056 // Estimate the memory usage of this object 00057 virtual const UINT32 getUsedMemory() const { return sizeof(*this); }; 00058 00060 value_type getRadius() const { return m_radius.getX(); } 00061 00063 void setRadius(value_type radius); 00064 00066 00069 bool containsPoint(const Point2D& point) const; 00070 00071 }; 00072 00073 00074 } // namespace datatypes 00075 00076 #endif // CIRCLE2D_HPP