public void xor(Polygon p2) { clip(GPC_XOR, this, p2); }\r
public void subtract(Polygon p2) { clip(GPC_DIFF, this, p2); }\r
private static Polygon rectclipper = new Polygon();\r
- public void addrect(float x1, float y1, float x2, float y2, Affine a) {\r
+ public Polygon addrect(float x1, float y1, float x2, float y2, Affine a) {\r
add(a.multiply_px(x1, y1), a.multiply_py(x1, y1));\r
add(a.multiply_px(x2, y1), a.multiply_py(x2, y1));\r
add(a.multiply_px(x2, y2), a.multiply_py(x2, y2));\r
add(a.multiply_px(x1, y2), a.multiply_py(x1, y2));\r
closepath();\r
+ return this;\r
}\r
public void clipto(float x1, float y1, float x2, float y2, Affine a) {\r
rectclipper.clear();\r
add(a.multiply_px(x, y), a.multiply_py(x, y));\r
}\r
}\r
- public void transform(Affine a) {\r
+ public Polygon transform(Affine a) {\r
maxx = Float.MIN_VALUE; maxy = Float.MIN_VALUE; minx = Float.MAX_VALUE; miny = Float.MIN_VALUE;\r
int s = 0;\r
for(int i=0; i<numvertices; i++) {\r
if (y > maxy) maxy = y;\r
if (y < miny) miny = y;\r
}\r
+ return this;\r
}\r
\r
public void stroke(PixelBuffer buf, int color) {\r
float y1 = p.y[p.edges[i]];\r
float x2 = p.x[p.edges[i]+1];\r
float y2 = p.y[p.edges[i]+1];\r
- buf.drawLine((int)Math.floor(x1), (int)Math.floor(y1), (int)Math.ceil(x2), (int)Math.ceil(y2), 1, color, false);\r
+ buf.drawLine((int)Math.floor(x1), (int)Math.floor(y1), (int)Math.ceil(x2), (int)Math.ceil(y2), color);\r
}\r
}\r
\r