4 * Created on: Apr 29, 2012
11 #include "../geometry/Ray2D.h"
12 #include "../geometry/Vector2D.h"
26 typedef geometry::Vector2D<Scalar> Vector;
27 typedef geometry::Ray2D<Scalar> Ray;
30 virtual ~Shape(void) { };
33 virtual void Translate(const Vector &delta) = 0;
34 virtual void Rotate(Scalar delta) = 0;
37 virtual bool CheckCollision(const Shape &, Ray &) const = 0;
38 virtual bool CheckCollision(const AABB &, Ray &) const = 0;
39 virtual bool CheckCollision(const Circle &, Ray &) const = 0;
42 virtual std::ostream &Write(std::ostream &) const = 0;
47 inline std::ostream &operator <<(std::ostream &out, const Shape &s) {
53 #endif /* SHAPE_SHAPE_H_ */