X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fpath.h;h=2aa7840450abcba370c0f7e2b48830257e0ee99d;hp=1a0ed536d0642daf45c9074728db46101c5d778b;hb=326f04a375ce3120f7e8957e3d7cd5f296f513e3;hpb=e7066887c0d142ddef87ec9ae07ef08ff31573dc diff --git a/src/path.h b/src/path.h index 1a0ed53..2aa7840 100644 --- a/src/path.h +++ b/src/path.h @@ -1,13 +1,26 @@ #ifndef _PATH_H #define _PATH_H +#include "transformationtype.h" #include #include #include "rect.h" #include "real.h" +#ifdef TRANSFORM_BEZIERS_TO_PATH + #include "gmprat.h" + +#endif + + namespace IPDF { + #ifdef TRANSFORM_BEZIERS_TO_PATH + typedef Gmprat PReal; + #else + typedef Real PReal; + #endif + typedef TRect PRect; struct Colour { @@ -22,12 +35,15 @@ namespace IPDF }; class Objects; + class View; struct Path { - Path(const Objects & objects, unsigned _start, unsigned _end, const Colour & _fill = Colour(128,128,128,255), const Colour & _stroke = Colour(0,0,0,0)); + Path(Objects & objects, unsigned _start, unsigned _end, const Colour & _fill = Colour(128,128,128,255), const Colour & _stroke = Colour(0,0,0,0)); - Rect SolveBounds(const Objects & objects) const; + Rect SolveBounds(const Objects & objects); + Rect & GetBounds(Objects & objects); + std::vector & FillPoints(const Objects & objects, const View & view); // Is point inside shape? bool PointInside(const Objects & objects, const Vec2 & pt, bool debug=false) const; @@ -43,6 +59,9 @@ namespace IPDF std::vector m_fill_points; + PRect m_bounds; + + Colour m_fill; // colour to fill with Colour m_stroke; // colour to outline with };