00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _LINECOLLISIONHULL_
00019 #define _LINECOLLISIONHULL_
00020
00021 #include "game/BaseCollisionHull.h"
00022 #include "game/CollisionHullFactory.h"
00023
00024 #include "util/Vector2.h"
00025
00026 class LineCollisionHull : public BaseCollisionHull
00027 {
00028 private:
00029 Vector2 m_startPoint;
00030 Vector2 m_endPoint;
00031 Material m_material;
00032 public:
00033 DEFAULT_COLLISIONHULL_CONSTRUCTOR(LineCollisionHull, );
00034
00035 LineCollisionHull(const Vector2 & startPoint, const Vector2 & endPoint, const Material & material)
00036 :BaseCollisionHull("collisionhull_line"), m_startPoint(startPoint), m_endPoint(endPoint), m_material(material)
00037 {
00038 }
00039
00040 virtual void ParseShapes();
00041
00042 virtual bool FromAttribute(const Attribute * pRoot);
00043
00044 const Material & GetMaterial() const { return m_material; }
00045 void SetMaterial(const Material& material) { m_material = material; }
00046
00047 const Vector2 & GetStartPoint() const { return m_startPoint; }
00048 void SetStartPoint(const Vector2 & startPoint) { m_startPoint = startPoint; }
00049
00050 const Vector2 & GetEndPoint() const { return m_endPoint; }
00051 void SetEndPoint(const Vector2 & endPoint) { m_endPoint = endPoint; }
00052 };
00053
00054 typedef boost::shared_ptr<LineCollisionHull> LineCollisionHullPtr;
00055
00056 REGISTER_COLLISIONHULL(LineCollisionHull, "collisionhull_line");
00057
00058 #endif