public void CloseAllFigures() { ExtendedGeneralPath p = new ExtendedGeneralPath(); PathIterator pi = NativeObject.getPathIterator(null); JPI lastSeg = JPI.SEG_CLOSE; float [] points = new float[6]; p.setWindingRule(pi.getWindingRule()); while (!pi.isDone()) { JPI curSeg = (JPI)pi.currentSegment(points); switch (curSeg) { case JPI.SEG_CLOSE: p.closePath(); break; case JPI.SEG_MOVETO: if (lastSeg != JPI.SEG_CLOSE) { p.closePath(); } p.moveTo(points[0], points[1]); break; case JPI.SEG_LINETO: p.lineTo(points[0], points[1]); break; case JPI.SEG_QUADTO: p.quadTo(points[0], points[1], points[2], points[3]); break; case JPI.SEG_CUBICTO: p.curveTo(points[0], points[1], points[2], points[3], points[4], points[5]); break; default: break; } lastSeg = curSeg; pi.next(); } p.closePath(); Shape = p; }
public void Flatten(Matrix matrix, float flatness) { AffineTransform tr = null; if (matrix != null) { tr = matrix.NativeObject; } //FIXME : Review (perfomance reasons). PathIterator pi = NativeObject.getPathIterator(tr, flatness); ExtendedGeneralPath newPath = new ExtendedGeneralPath(); newPath.append(pi, false); Shape = newPath; }