1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #ifndef __POLYGON_H__
- #define __POLYGON_H__
- #include "core/image/CoordT.h"
- #include <list>
- typedef std::list< NICE::CoordT< int > > PointsList;
- namespace OBJREC
- {
- class Polygon
- {
- public:
- Polygon();
- Polygon ( const Polygon © );
- ~Polygon();
- void push ( const NICE::CoordT< int > &aPoint );
- void push ( const int &x, const int &y );
- void setID ( const int &anID );
- const PointsList * points() const;
- NICE::CoordT< int > pop();
- int id() const;
-
- bool insidePolygon ( const NICE::CoordT< int > &aPoint );
- bool insidePolygon ( const int &px, const int &py );
- private:
- PointsList points_;
-
- int id_;
-
- bool handleEdge ( const int px, const int py,
- const int x1, const int y1,
- const int x2, const int y2,
- int & lastdir, int & c );
- public:
-
- int unique_id_;
- };
- }
- #endif
|