31 #include <math/vector2d.h>
32 #include <math/box2.h>
34 #include <geometry/seg.h>
61 typedef VECTOR2I::extended_type ecoord;
123 virtual bool Collide(
const SHAPE* aShape,
int aClearance = 0 )
const;
132 virtual bool Collide(
const SEG& aSeg,
int aClearance = 0 )
const = 0;
143 virtual const BOX2I BBox(
int aClearance = 0 )
const = 0;
153 return BBox( 0 ).Centre();
156 virtual void Move (
const VECTOR2I& aVector ) = 0;
158 virtual bool IsSolid()
const = 0;
160 virtual bool Parse( std::stringstream& aStream );
162 virtual const std::string Format( )
const;
169 bool CollideShapes(
const SHAPE* aA,
const SHAPE* aB,
int aClearance,
Class SHAPE.
Definition: shape.h:59
virtual VECTOR2I Centre() const
Function Centre()
Definition: shape.h:151
virtual SHAPE * Clone() const
Function Clone()
Definition: shape.h:94
SHAPE_TYPE m_type
type of our shape
Definition: shape.h:166
SHAPE(SHAPE_TYPE aType)
Constructor.
Definition: shape.h:70
virtual bool Collide(const VECTOR2I &aP, int aClearance=0) const
Function Collide()
Definition: shape.h:107
virtual bool Collide(const SEG &aSeg, int aClearance=0) const =0
Function Collide()
virtual const BOX2I BBox(int aClearance=0) const =0
Function BBox()
SHAPE_TYPE Type() const
Function Type()
Definition: shape.h:83