home *** CD-ROM | disk | FTP | other *** search
- package java.awt.geom;
-
- class GeneralPathIterator implements PathIterator {
- int typeIdx;
- int pointIdx;
- GeneralPath path;
- AffineTransform affine;
- private static final int[] curvesize = new int[]{2, 2, 4, 6, 0};
-
- GeneralPathIterator(GeneralPath var1) {
- this(var1, (AffineTransform)null);
- }
-
- GeneralPathIterator(GeneralPath var1, AffineTransform var2) {
- this.typeIdx = 0;
- this.pointIdx = 0;
- this.path = var1;
- this.affine = var2;
- }
-
- public int getWindingRule() {
- return this.path.getWindingRule();
- }
-
- public boolean isDone() {
- return this.typeIdx >= this.path.numTypes;
- }
-
- public void next() {
- byte var1 = this.path.pointTypes[this.typeIdx++];
- this.pointIdx += curvesize[var1];
- }
-
- public int currentSegment(float[] var1) {
- byte var2 = this.path.pointTypes[this.typeIdx];
- int var3 = curvesize[var2];
- if (var3 > 0 && this.affine != null) {
- this.affine.transform(this.path.pointCoords, this.pointIdx, var1, 0, var3 / 2);
- } else {
- System.arraycopy(this.path.pointCoords, this.pointIdx, var1, 0, var3);
- }
-
- return var2;
- }
-
- public int currentSegment(double[] var1) {
- byte var2 = this.path.pointTypes[this.typeIdx];
- int var3 = curvesize[var2];
- if (var3 > 0 && this.affine != null) {
- this.affine.transform(this.path.pointCoords, this.pointIdx, var1, 0, var3 / 2);
- } else {
- for(int var4 = 0; var4 < var3; ++var4) {
- var1[var4] = (double)this.path.pointCoords[this.pointIdx + var4];
- }
- }
-
- return var2;
- }
- }
-