-gfxpoly_t* gfxpoly_fillToPoly(gfxline_t*line);
-gfxpoly_t* gfxpoly_strokeToPoly(gfxline_t*line, gfxcoord_t width, gfx_capType cap_style, gfx_joinType joint_style, double miterLimit);
-gfxpoly_t* gfxpoly_createbox(double x1, double y1,double x2, double y2);
-
-/* boolean operations */
-gfxpoly_t* gfxpoly_intersect(gfxpoly_t*line1, gfxpoly_t*line2);
-gfxpoly_t* gfxpoly_union(gfxpoly_t*line1, gfxpoly_t*line2);
-
-/* other things */
-gfxline_t* gfxpoly_to_gfxline(gfxpoly_t*poly);
-gfxline_t* gfxline_circularToEvenOdd(gfxline_t*line);
+gfxpoly_t* gfxpoly_from_fill(gfxline_t*line, double gridsize);
+gfxpoly_t* gfxpoly_from_stroke(gfxline_t*line, gfxcoord_t width, gfx_capType cap_style, gfx_joinType joint_style, gfxcoord_t miterLimit, double gridsize);
+
+/* operators */
+gfxpoly_t* gfxpoly_intersect(gfxpoly_t*p1, gfxpoly_t*p2);
+gfxpoly_t* gfxpoly_union(gfxpoly_t*p1, gfxpoly_t*p2);
+
+/* conversion functions */
+gfxpoly_t* gfxpoly_createbox(double x1, double y1,double x2, double y2, double gridsize);
+gfxline_t* gfxline_from_gfxpoly(gfxpoly_t*poly);
+gfxline_t* gfxline_from_gfxpoly_with_direction(gfxpoly_t*poly);
+gfxline_t* gfxpoly_circular_to_evenodd(gfxline_t*line, double gridsize);