include/rays/polygon.h in rays-0.1.47 vs include/rays/polygon.h in rays-0.1.48
- old
+ new
@@ -18,54 +18,23 @@
class Polygon
{
public:
- struct Line : public Polyline
- {
+ typedef std::vector<Polyline> PolylineList;
- typedef Polyline Super;
+ typedef PolylineList::const_iterator const_iterator;
- public:
-
- Line ();
-
- Line (
- const Point* points, size_t size,
- bool loop = true,
- bool hole = false);
-
- Line (const Polyline& polyline, bool hole = false);
-
- bool hole () const;
-
- operator bool () const;
-
- bool operator ! () const;
-
- private:
-
- bool hole_;
-
- };// Line
-
- typedef std::vector<Line> LineList;
-
- typedef LineList::const_iterator const_iterator;
-
Polygon ();
Polygon (
- const Point* points, size_t size, bool loop = true);
+ const Point* points, size_t size, bool loop = true,
+ const Color* colors = NULL, const Coord3* texcoords = NULL);
- Polygon (
- DrawMode mode,
- const Point* points, size_t size, bool loop = true);
-
Polygon (const Polyline& polyline);
- Polygon (const Line* lines, size_t size);
+ Polygon (const Polyline* polylines, size_t size);
~Polygon ();
bool expand (
Polygon* result,
@@ -82,16 +51,18 @@
const_iterator begin () const;
const_iterator end () const;
- const Line& operator [] (size_t index) const;
+ const Polyline& operator [] (size_t index) const;
operator bool () const;
bool operator ! () const;
+ friend Polygon operator + (const Polygon& lhs, const Polyline& rhs);
+
friend Polygon operator + (const Polygon& lhs, const Polygon& rhs);
friend Polygon operator - (const Polygon& lhs, const Polygon& rhs);
friend Polygon operator & (const Polygon& lhs, const Polygon& rhs);
@@ -113,19 +84,49 @@
bool triangulate (TrianglePointList* triangles) const;
};// Polygon
+ Polygon create_point (coord x, coord y);
+
+ Polygon create_point (const Point& point);
+
+ Polygon create_points (const Point* points, size_t size);
+
+
Polygon create_line (coord x1, coord y1, coord x2, coord y2);
Polygon create_line (const Point& p1, const Point& p2);
Polygon create_line (const Point* points, size_t size, bool loop = false);
Polygon create_line (const Polyline& polyline);
+ Polygon create_lines (const Point* points, size_t size);
+
+ Polygon create_triangle (
+ coord x1, coord y1, coord x2, coord y2, coord x3, coord y3,
+ bool loop = true);
+
+ Polygon create_triangle (
+ const Point& p1, const Point& p2, const Point& p3,
+ bool loop = true);
+
+ Polygon create_triangles (
+ const Point* points, size_t size, bool loop = true,
+ const Color* colors = NULL, const Coord3* texcoords = NULL);
+
+ Polygon create_triangle_strip (
+ const Point* points, size_t size,
+ const Color* colors = NULL, const Coord3* texcoords = NULL);
+
+ Polygon create_triangle_fan (
+ const Point* points, size_t size,
+ const Color* colors = NULL, const Coord3* texcoords = NULL);
+
+
Polygon create_rect (
coord x, coord y, coord width, coord height,
coord round = 0,
uint nsegment = 0);
@@ -143,9 +144,27 @@
Polygon create_rect (
const Bounds& bounds,
coord round_left_top, coord round_right_top,
coord round_left_bottom, coord round_right_bottom,
uint nsegment = 0);
+
+
+ Polygon create_quad (
+ coord x1, coord y1, coord x2, coord y2,
+ coord x3, coord y3, coord x4, coord y4,
+ bool loop = true);
+
+ Polygon create_quad (
+ const Point& p1, const Point& p2, const Point& p3, const Point& p4,
+ bool loop = true);
+
+ Polygon create_quads (
+ const Point* points, size_t size, bool loop = true,
+ const Color* colors = NULL, const Coord3* texcoords = NULL);
+
+ Polygon create_quad_strip (
+ const Point* points, size_t size,
+ const Color* colors = NULL, const Coord3* texcoords = NULL);
Polygon create_ellipse (
coord x, coord y, coord width, coord height = 0,
const Point& hole_size = 0,