4 * Created on: Apr 29, 2012
8 #ifndef SHAPE_CIRCLE_H_
9 #define SHAPE_CIRCLE_H_
20 explicit Circle(Scalar r, Vector pos = Vector()) : center(pos), radius(r) { };
21 virtual ~Circle(void) { };
24 const Vector &Center(void) const { return center; };
25 Scalar Radius(void) const { return radius; };
27 Scalar Left(void) const { return center.X() - radius; };
28 Scalar Top(void) const { return center.Y() - radius; };
29 Scalar Right(void) const { return center.X() + radius; };
30 Scalar Bottom(void) const { return center.Y() + radius; };
33 virtual void Translate(const Vector &delta);
34 virtual void Rotate(Scalar delta);
37 virtual bool CheckCollision(const Shape &, Ray &) const;
38 virtual bool CheckCollision(const AABB &, Ray &) const;
39 virtual bool CheckCollision(const Circle &, Ray &) const;
42 virtual std::ostream &Write(std::ostream &) const;
52 #endif /* SHAPE_CIRCLE_H_ */