UGDK  0.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
geometricshape.h
Go to the documentation of this file.
1 #ifndef PYRAMIDWORKS_GEOMETRY_GEOMETRYOBJECT_H_
2 #define PYRAMIDWORKS_GEOMETRY_GEOMETRYOBJECT_H_
3 
4 #include <ugdk/math/vector2D.h>
5 #include <ugdk/util.h>
7 
8 namespace pyramidworks {
9 namespace geometry {
10 
14  public:
15  virtual ~GeometricShape() {}
16 
18 
22  virtual bool Intersects(const ugdk::Vector2D& this_pos, const GeometricShape *obj, const ugdk::Vector2D& that_pos) const = 0;
23 
25 
29  virtual bool Intersects(const ugdk::Vector2D& this_pos, const Circle *obj, const ugdk::Vector2D& that_pos) const = 0;
30 
32 
36  virtual bool Intersects(const ugdk::Vector2D& this_pos, const Rect *obj, const ugdk::Vector2D& that_pos) const = 0;
37 
39 
43  virtual bool Intersects(const ugdk::Vector2D& this_pos, const ConvexPolygon *obj, const ugdk::Vector2D& that_pos) const = 0;
44 
46 
49  virtual ugdk::ikdtree::Box<2> GetBoundingBox(const ugdk::Vector2D& position) const = 0;
50 
51  protected:
54 };
55 
56 } // namespace geometry
57 } // namespace pyramidworks
58 
59 #endif /* PYRAMIDWORKS_GEOMETRY_GEOMETRYOBJECT_H_ */