Go to the documentation of this file.00001
00002
00003
00004
00005 #include <cmath>
00006
00007 #include "Circle2D.hpp"
00008 #include "../tools/errorhandler.hpp"
00009
00010 namespace datatypes
00011 {
00012
00013
00014 Circle2D::Circle2D()
00015 : base_class()
00016 {
00017 m_datatype = Datatype_Circle2D;
00018 }
00019
00020 Circle2D::Circle2D(const Point2D& center, value_type radius)
00021 : base_class(center, Point2D(radius, radius), 0)
00022 {
00023 m_datatype = Datatype_Circle2D;
00024 }
00025
00026 Circle2D::Circle2D(value_type x_center, value_type y_center, value_type radius)
00027 : base_class(x_center, y_center, radius, radius, 0)
00028 {
00029 m_datatype = Datatype_Circle2D;
00030 }
00031
00032 void Circle2D::setRadius(value_type radius)
00033 {
00034 base_class::setRadius(radius, radius);
00035 }
00036
00037 bool Circle2D::containsPoint(const Point2D& point) const
00038 {
00039
00040 value_type deltaX = point.getX() - m_center.getX();
00041 value_type deltaY = point.getY() - m_center.getY();
00042
00043
00044
00045 if (std::max(std::abs(deltaX), std::abs(deltaY)) > m_radius.getX())
00046 return false;
00047
00048 return hypot(deltaX, deltaY) < m_radius.getX();
00049 }
00050
00051 }
00052