home *** CD-ROM | disk | FTP | other *** search
- package java.awt.geom;
-
- import java.util.NoSuchElementException;
-
- class RoundRectIterator implements PathIterator {
- // $FF: renamed from: x double
- double field_0;
- // $FF: renamed from: y double
- double field_1;
- // $FF: renamed from: w double
- double field_2;
- // $FF: renamed from: h double
- double field_3;
- // $FF: renamed from: aw double
- double field_4;
- // $FF: renamed from: ah double
- double field_5;
- AffineTransform affine;
- int index;
- private static final double angle = (Math.PI / 4D);
- // $FF: renamed from: a double
- private static final double field_6 = (double)1.0F - Math.cos((Math.PI / 4D));
- // $FF: renamed from: b double
- private static final double field_7 = Math.tan((Math.PI / 4D));
- // $FF: renamed from: c double
- private static final double field_8;
- // $FF: renamed from: cv double
- private static final double field_9;
- private static final double acv;
- private static double[][] ctrlpts;
- private static int[] types;
-
- RoundRectIterator(RoundRectangle2D var1, AffineTransform var2) {
- this.field_0 = ((RectangularShape)var1).getX();
- this.field_1 = ((RectangularShape)var1).getY();
- this.field_2 = ((RectangularShape)var1).getWidth();
- this.field_3 = ((RectangularShape)var1).getHeight();
- this.field_4 = Math.min(this.field_2, Math.abs(var1.getArcWidth()));
- this.field_5 = Math.min(this.field_3, Math.abs(var1.getArcHeight()));
- this.affine = var2;
- if (this.field_4 < (double)0.0F || this.field_5 < (double)0.0F) {
- this.index = ctrlpts.length;
- }
-
- }
-
- public int getWindingRule() {
- return 1;
- }
-
- public boolean isDone() {
- return this.index >= ctrlpts.length;
- }
-
- public void next() {
- ++this.index;
- }
-
- public int currentSegment(float[] var1) {
- if (this.isDone()) {
- throw new NoSuchElementException("roundrect iterator out of bounds");
- } else {
- double[] var2 = ctrlpts[this.index];
- int var3 = 0;
-
- for(int var4 = 0; var4 < var2.length; var4 += 4) {
- var1[var3++] = (float)(this.field_0 + var2[var4 + 0] * this.field_2 + var2[var4 + 1] * this.field_4);
- var1[var3++] = (float)(this.field_1 + var2[var4 + 2] * this.field_3 + var2[var4 + 3] * this.field_5);
- }
-
- if (this.affine != null) {
- this.affine.transform(var1, 0, var1, 0, var3 / 2);
- }
-
- return types[this.index];
- }
- }
-
- public int currentSegment(double[] var1) {
- if (this.isDone()) {
- throw new NoSuchElementException("roundrect iterator out of bounds");
- } else {
- double[] var2 = ctrlpts[this.index];
- int var3 = 0;
-
- for(int var4 = 0; var4 < var2.length; var4 += 4) {
- var1[var3++] = this.field_0 + var2[var4 + 0] * this.field_2 + var2[var4 + 1] * this.field_4;
- var1[var3++] = this.field_1 + var2[var4 + 2] * this.field_3 + var2[var4 + 3] * this.field_5;
- }
-
- if (this.affine != null) {
- this.affine.transform(var1, 0, var1, 0, var3 / 2);
- }
-
- return types[this.index];
- }
- }
-
- static {
- field_8 = Math.sqrt((double)1.0F + field_7 * field_7) - (double)1.0F + field_6;
- field_9 = 1.3333333333333333 * field_6 * field_7 / field_8;
- acv = ((double)1.0F - field_9) / (double)2.0F;
- ctrlpts = new double[][]{{(double)0.0F, (double)0.0F, (double)0.0F, (double)0.5F}, {(double)0.0F, (double)0.0F, (double)1.0F, (double)-0.5F}, {(double)0.0F, (double)0.0F, (double)1.0F, -acv, (double)0.0F, acv, (double)1.0F, (double)0.0F, (double)0.0F, (double)0.5F, (double)1.0F, (double)0.0F}, {(double)1.0F, (double)-0.5F, (double)1.0F, (double)0.0F}, {(double)1.0F, -acv, (double)1.0F, (double)0.0F, (double)1.0F, (double)0.0F, (double)1.0F, -acv, (double)1.0F, (double)0.0F, (double)1.0F, (double)-0.5F}, {(double)1.0F, (double)0.0F, (double)0.0F, (double)0.5F}, {(double)1.0F, (double)0.0F, (double)0.0F, acv, (double)1.0F, -acv, (double)0.0F, (double)0.0F, (double)1.0F, (double)-0.5F, (double)0.0F, (double)0.0F}, {(double)0.0F, (double)0.5F, (double)0.0F, (double)0.0F}, {(double)0.0F, acv, (double)0.0F, (double)0.0F, (double)0.0F, (double)0.0F, (double)0.0F, acv, (double)0.0F, (double)0.0F, (double)0.0F, (double)0.5F}, new double[0]};
- types = new int[]{0, 1, 3, 1, 3, 1, 3, 1, 3, 4};
- }
- }
-