8 #ifndef EMP_CIRCLE_2D_H 9 #define EMP_CIRCLE_2D_H 16 template <
typename TYPE=
double>
class Circle2D {
23 constexpr
Circle2D(TYPE _x, TYPE _y, TYPE _r=0) : center(_x,_y), radius(_r) { ; }
24 constexpr
Circle2D(TYPE _r=0) : center(0.0, 0.0), radius(_r) { ; }
45 constexpr
bool Contains(TYPE x, TYPE y)
const {
52 const TYPE min_dist = radius + other.radius;
53 return center.
SquareDistance(other.center) < (min_dist * min_dist);
constexpr bool Contains(const Circle2D< TYPE > &other) const
Definition: Circle2D.h:48
Circle2D< TYPE > & Set(TYPE x, TYPE y, TYPE r)
Definition: Circle2D.h:38
Circle2D< TYPE > & Translate(Point2D< TYPE > shift)
Definition: Circle2D.h:40
constexpr TYPE GetX() const
Definition: Point2D.h:39
constexpr bool Contains(TYPE x, TYPE y) const
Definition: Circle2D.h:45
constexpr TYPE GetSquareRadius() const
Definition: Circle2D.h:30
constexpr Circle2D(TYPE _r=0)
Definition: Circle2D.h:24
Circle2D< TYPE > & SetCenterX(TYPE x)
Definition: Circle2D.h:34
Definition: Circle2D.h:16
Circle2D< TYPE > & SetRadius(TYPE new_radius)
Definition: Circle2D.h:36
Point2D & Set(TYPE _x, TYPE _y)
Definition: Point2D.h:43
constexpr Circle2D(TYPE _x, TYPE _y, TYPE _r=0)
Definition: Circle2D.h:23
constexpr Circle2D(const Point2D< TYPE > &_c, TYPE _r=0)
Definition: Circle2D.h:22
TYPE SquareDistance(const Point2D &_in) const
Definition: Point2D.h:90
constexpr TYPE GetCenterX() const
Definition: Circle2D.h:27
Circle2D< TYPE > & SetCenter(const Point2D< TYPE > &c)
Definition: Circle2D.h:32
Circle2D< TYPE > & SetCenter(TYPE x, TYPE y)
Definition: Circle2D.h:33
Circle2D< TYPE > & SetCenterY(TYPE y)
Definition: Circle2D.h:35
If we are in emscripten, make sure to include the header.
Definition: array.h:37
constexpr const Point2D< TYPE > & GetCenter() const
Definition: Circle2D.h:26
constexpr bool Contains(const Point2D< TYPE > &point) const
Definition: Circle2D.h:42
Point2D & SetY(TYPE in_y)
Definition: Point2D.h:42
Circle2D< TYPE > & Set(const Point2D< TYPE > &c, TYPE r)
Definition: Circle2D.h:37
constexpr TYPE GetY() const
Definition: Point2D.h:40
constexpr TYPE GetRadius() const
Definition: Circle2D.h:29
constexpr TYPE GetCenterY() const
Definition: Circle2D.h:28
bool HasOverlap(const Circle2D< TYPE > &other) const
Definition: Circle2D.h:51
Point2D & SetX(TYPE in_x)
Definition: Point2D.h:41