1 #ifndef HEADER_SHAPE_H
2 #define HEADER_SHAPE_H
3 
4 #include "NoCopy.h"
5 #include "V2.h"
6 
7 #include <string>
8 #include <vector>
9 
10 /**
11  * Stores model shape.
12  * It is uses by MarkMask to ask Field under shape.
13  */
14 class Shape : public NoCopy {
15     public:
16         typedef std::vector<V2> t_marks;
17         typedef t_marks::const_iterator const_iterator;
18     private:
19         t_marks m_marks;
20         int m_w;
21         int m_h;
22     public:
23         Shape(const std::string &shape);
24 
marksBegin()25         const_iterator marksBegin() const { return m_marks.begin(); }
marksEnd()26         const_iterator marksEnd() const { return m_marks.end(); }
getW()27         int getW() const { return m_w; }
getH()28         int getH() const { return m_h; }
29 
30         std::string toString() const;
31 };
32 
33 #endif
34