4 * Created on: Apr 20, 2012
8 #ifndef GEOMETRY_SHAPE_H_
9 #define GEOMETRY_SHAPE_H_
26 typedef Vector2D<Scalar> Vector;
27 typedef std::numeric_limits<Scalar> Limits;
31 virtual ~Shape(void) { };
34 virtual bool Overlaps(const Shape &, Vector &normal) const = 0;
36 virtual bool Overlaps(const AABB &, Vector &normal) const = 0;
37 virtual bool Overlaps(const Circle &, Vector &normal) const = 0;
38 virtual bool Overlaps(const FakeLens &, Vector &normal) const = 0;
41 virtual std::ostream &Write(std::ostream &out) const = 0;
44 virtual void SetPosition(const Vector &) = 0;
45 virtual Vector Center(void) const = 0;
54 inline ostream &operator <<(ostream &out, const geometry::Shape &s) {
60 #endif /* GEOMETRY_SHAPE_H_ */