public abstract class java.awt.geom.CubicCurve2D implements java.awt.Shape, java.lang.Cloneable
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: java.awt.geom.CubicCurve2D
super_class: java.lang.Object
{
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 // java.awt.geom.CubicCurve2D this
0: .line 592
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 593
return
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/awt/geom/CubicCurve2D;
public abstract double getX1();
descriptor: ()D
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract double getY1();
descriptor: ()D
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract java.awt.geom.Point2D getP1();
descriptor: ()Ljava/awt/geom/Point2D;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract double getCtrlX1();
descriptor: ()D
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract double getCtrlY1();
descriptor: ()D
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract java.awt.geom.Point2D getCtrlP1();
descriptor: ()Ljava/awt/geom/Point2D;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract double getCtrlX2();
descriptor: ()D
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract double getCtrlY2();
descriptor: ()D
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract java.awt.geom.Point2D getCtrlP2();
descriptor: ()Ljava/awt/geom/Point2D;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract double getX2();
descriptor: ()D
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract double getY2();
descriptor: ()D
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract java.awt.geom.Point2D getP2();
descriptor: ()Ljava/awt/geom/Point2D;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract void setCurve(double, double, double, double, double, double, double, double);
descriptor: (DDDDDDDD)V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
x1
y1
ctrlx1
ctrly1
ctrlx2
ctrly2
x2
y2
public void setCurve(double[], int);
descriptor: ([DI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=18, locals=3, args_size=3
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // double[] coords
start local 2 // int offset
0: .line 731
aload 0 /* this */
aload 1 /* coords */
iload 2 /* offset */
iconst_0
iadd
daload
aload 1 /* coords */
iload 2 /* offset */
iconst_1
iadd
daload
1: .line 732
aload 1 /* coords */
iload 2 /* offset */
iconst_2
iadd
daload
aload 1 /* coords */
iload 2 /* offset */
iconst_3
iadd
daload
2: .line 733
aload 1 /* coords */
iload 2 /* offset */
iconst_4
iadd
daload
aload 1 /* coords */
iload 2 /* offset */
iconst_5
iadd
daload
3: .line 734
aload 1 /* coords */
iload 2 /* offset */
bipush 6
iadd
daload
aload 1 /* coords */
iload 2 /* offset */
bipush 7
iadd
daload
4: .line 731
invokevirtual java.awt.geom.CubicCurve2D.setCurve:(DDDDDDDD)V
5: .line 735
return
end local 2 // int offset
end local 1 // double[] coords
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/awt/geom/CubicCurve2D;
0 6 1 coords [D
0 6 2 offset I
MethodParameters:
Name Flags
coords
offset
public void setCurve(java.awt.geom.Point2D, java.awt.geom.Point2D, java.awt.geom.Point2D, java.awt.geom.Point2D);
descriptor: (Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=17, locals=5, args_size=5
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // java.awt.geom.Point2D p1
start local 2 // java.awt.geom.Point2D cp1
start local 3 // java.awt.geom.Point2D cp2
start local 4 // java.awt.geom.Point2D p2
0: .line 751
aload 0 /* this */
aload 1 /* p1 */
invokevirtual java.awt.geom.Point2D.getX:()D
aload 1 /* p1 */
invokevirtual java.awt.geom.Point2D.getY:()D
aload 2 /* cp1 */
invokevirtual java.awt.geom.Point2D.getX:()D
aload 2 /* cp1 */
invokevirtual java.awt.geom.Point2D.getY:()D
1: .line 752
aload 3 /* cp2 */
invokevirtual java.awt.geom.Point2D.getX:()D
aload 3 /* cp2 */
invokevirtual java.awt.geom.Point2D.getY:()D
aload 4 /* p2 */
invokevirtual java.awt.geom.Point2D.getX:()D
aload 4 /* p2 */
invokevirtual java.awt.geom.Point2D.getY:()D
2: .line 751
invokevirtual java.awt.geom.CubicCurve2D.setCurve:(DDDDDDDD)V
3: .line 753
return
end local 4 // java.awt.geom.Point2D p2
end local 3 // java.awt.geom.Point2D cp2
end local 2 // java.awt.geom.Point2D cp1
end local 1 // java.awt.geom.Point2D p1
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/awt/geom/CubicCurve2D;
0 4 1 p1 Ljava/awt/geom/Point2D;
0 4 2 cp1 Ljava/awt/geom/Point2D;
0 4 3 cp2 Ljava/awt/geom/Point2D;
0 4 4 p2 Ljava/awt/geom/Point2D;
MethodParameters:
Name Flags
p1
cp1
cp2
p2
public void setCurve(java.awt.geom.Point2D[], int);
descriptor: ([Ljava/awt/geom/Point2D;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=18, locals=3, args_size=3
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // java.awt.geom.Point2D[] pts
start local 2 // int offset
0: .line 766
aload 0 /* this */
aload 1 /* pts */
iload 2 /* offset */
iconst_0
iadd
aaload
invokevirtual java.awt.geom.Point2D.getX:()D
aload 1 /* pts */
iload 2 /* offset */
iconst_0
iadd
aaload
invokevirtual java.awt.geom.Point2D.getY:()D
1: .line 767
aload 1 /* pts */
iload 2 /* offset */
iconst_1
iadd
aaload
invokevirtual java.awt.geom.Point2D.getX:()D
aload 1 /* pts */
iload 2 /* offset */
iconst_1
iadd
aaload
invokevirtual java.awt.geom.Point2D.getY:()D
2: .line 768
aload 1 /* pts */
iload 2 /* offset */
iconst_2
iadd
aaload
invokevirtual java.awt.geom.Point2D.getX:()D
aload 1 /* pts */
iload 2 /* offset */
iconst_2
iadd
aaload
invokevirtual java.awt.geom.Point2D.getY:()D
3: .line 769
aload 1 /* pts */
iload 2 /* offset */
iconst_3
iadd
aaload
invokevirtual java.awt.geom.Point2D.getX:()D
aload 1 /* pts */
iload 2 /* offset */
iconst_3
iadd
aaload
invokevirtual java.awt.geom.Point2D.getY:()D
4: .line 766
invokevirtual java.awt.geom.CubicCurve2D.setCurve:(DDDDDDDD)V
5: .line 770
return
end local 2 // int offset
end local 1 // java.awt.geom.Point2D[] pts
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/awt/geom/CubicCurve2D;
0 6 1 pts [Ljava/awt/geom/Point2D;
0 6 2 offset I
MethodParameters:
Name Flags
pts
offset
public void setCurve(java.awt.geom.CubicCurve2D);
descriptor: (Ljava/awt/geom/CubicCurve2D;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=17, locals=2, args_size=2
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // java.awt.geom.CubicCurve2D c
0: .line 779
aload 0 /* this */
aload 1 /* c */
invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
aload 1 /* c */
invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
aload 1 /* c */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlX1:()D
aload 1 /* c */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlY1:()D
1: .line 780
aload 1 /* c */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlX2:()D
aload 1 /* c */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlY2:()D
aload 1 /* c */
invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
aload 1 /* c */
invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
2: .line 779
invokevirtual java.awt.geom.CubicCurve2D.setCurve:(DDDDDDDD)V
3: .line 781
return
end local 1 // java.awt.geom.CubicCurve2D c
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/awt/geom/CubicCurve2D;
0 4 1 c Ljava/awt/geom/CubicCurve2D;
MethodParameters:
Name Flags
c
public static double getFlatnessSq(double, double, double, double, double, double, double, double);
descriptor: (DDDDDDDD)D
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=14, locals=16, args_size=8
start local 0 // double x1
start local 2 // double y1
start local 4 // double ctrlx1
start local 6 // double ctrly1
start local 8 // double ctrlx2
start local 10 // double ctrly2
start local 12 // double x2
start local 14 // double y2
0: .line 812
dload 0 /* x1 */
dload 2 /* y1 */
dload 12 /* x2 */
dload 14 /* y2 */
dload 4 /* ctrlx1 */
dload 6 /* ctrly1 */
invokestatic java.awt.geom.Line2D.ptSegDistSq:(DDDDDD)D
1: .line 813
dload 0 /* x1 */
dload 2 /* y1 */
dload 12 /* x2 */
dload 14 /* y2 */
dload 8 /* ctrlx2 */
dload 10 /* ctrly2 */
invokestatic java.awt.geom.Line2D.ptSegDistSq:(DDDDDD)D
2: .line 812
invokestatic java.lang.Math.max:(DD)D
dreturn
end local 14 // double y2
end local 12 // double x2
end local 10 // double ctrly2
end local 8 // double ctrlx2
end local 6 // double ctrly1
end local 4 // double ctrlx1
end local 2 // double y1
end local 0 // double x1
LocalVariableTable:
Start End Slot Name Signature
0 3 0 x1 D
0 3 2 y1 D
0 3 4 ctrlx1 D
0 3 6 ctrly1 D
0 3 8 ctrlx2 D
0 3 10 ctrly2 D
0 3 12 x2 D
0 3 14 y2 D
MethodParameters:
Name Flags
x1
y1
ctrlx1
ctrly1
ctrlx2
ctrly2
x2
y2
public static double getFlatness(double, double, double, double, double, double, double, double);
descriptor: (DDDDDDDD)D
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=16, locals=16, args_size=8
start local 0 // double x1
start local 2 // double y1
start local 4 // double ctrlx1
start local 6 // double ctrly1
start local 8 // double ctrlx2
start local 10 // double ctrly2
start local 12 // double x2
start local 14 // double y2
0: .line 846
dload 0 /* x1 */
dload 2 /* y1 */
dload 4 /* ctrlx1 */
dload 6 /* ctrly1 */
1: .line 847
dload 8 /* ctrlx2 */
dload 10 /* ctrly2 */
dload 12 /* x2 */
dload 14 /* y2 */
2: .line 846
invokestatic java.awt.geom.CubicCurve2D.getFlatnessSq:(DDDDDDDD)D
invokestatic java.lang.Math.sqrt:(D)D
dreturn
end local 14 // double y2
end local 12 // double x2
end local 10 // double ctrly2
end local 8 // double ctrlx2
end local 6 // double ctrly1
end local 4 // double ctrlx1
end local 2 // double y1
end local 0 // double x1
LocalVariableTable:
Start End Slot Name Signature
0 3 0 x1 D
0 3 2 y1 D
0 3 4 ctrlx1 D
0 3 6 ctrly1 D
0 3 8 ctrlx2 D
0 3 10 ctrly2 D
0 3 12 x2 D
0 3 14 y2 D
MethodParameters:
Name Flags
x1
y1
ctrlx1
ctrly1
ctrlx2
ctrly2
x2
y2
public static double getFlatnessSq(double[], int);
descriptor: ([DI)D
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=17, locals=2, args_size=2
start local 0 // double[] coords
start local 1 // int offset
0: .line 864
aload 0 /* coords */
iload 1 /* offset */
iconst_0
iadd
daload
aload 0 /* coords */
iload 1 /* offset */
iconst_1
iadd
daload
1: .line 865
aload 0 /* coords */
iload 1 /* offset */
iconst_2
iadd
daload
aload 0 /* coords */
iload 1 /* offset */
iconst_3
iadd
daload
2: .line 866
aload 0 /* coords */
iload 1 /* offset */
iconst_4
iadd
daload
aload 0 /* coords */
iload 1 /* offset */
iconst_5
iadd
daload
3: .line 867
aload 0 /* coords */
iload 1 /* offset */
bipush 6
iadd
daload
aload 0 /* coords */
iload 1 /* offset */
bipush 7
iadd
daload
4: .line 864
invokestatic java.awt.geom.CubicCurve2D.getFlatnessSq:(DDDDDDDD)D
dreturn
end local 1 // int offset
end local 0 // double[] coords
LocalVariableTable:
Start End Slot Name Signature
0 5 0 coords [D
0 5 1 offset I
MethodParameters:
Name Flags
coords
offset
public static double getFlatness(double[], int);
descriptor: ([DI)D
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=17, locals=2, args_size=2
start local 0 // double[] coords
start local 1 // int offset
0: .line 884
aload 0 /* coords */
iload 1 /* offset */
iconst_0
iadd
daload
aload 0 /* coords */
iload 1 /* offset */
iconst_1
iadd
daload
1: .line 885
aload 0 /* coords */
iload 1 /* offset */
iconst_2
iadd
daload
aload 0 /* coords */
iload 1 /* offset */
iconst_3
iadd
daload
2: .line 886
aload 0 /* coords */
iload 1 /* offset */
iconst_4
iadd
daload
aload 0 /* coords */
iload 1 /* offset */
iconst_5
iadd
daload
3: .line 887
aload 0 /* coords */
iload 1 /* offset */
bipush 6
iadd
daload
aload 0 /* coords */
iload 1 /* offset */
bipush 7
iadd
daload
4: .line 884
invokestatic java.awt.geom.CubicCurve2D.getFlatness:(DDDDDDDD)D
dreturn
end local 1 // int offset
end local 0 // double[] coords
LocalVariableTable:
Start End Slot Name Signature
0 5 0 coords [D
0 5 1 offset I
MethodParameters:
Name Flags
coords
offset
public double getFlatnessSq();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=16, locals=1, args_size=1
start local 0 // java.awt.geom.CubicCurve2D this
0: .line 898
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlX1:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlY1:()D
1: .line 899
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlX2:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlY2:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
2: .line 898
invokestatic java.awt.geom.CubicCurve2D.getFlatnessSq:(DDDDDDDD)D
dreturn
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/awt/geom/CubicCurve2D;
public double getFlatness();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=16, locals=1, args_size=1
start local 0 // java.awt.geom.CubicCurve2D this
0: .line 910
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlX1:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlY1:()D
1: .line 911
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlX2:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlY2:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
2: .line 910
invokestatic java.awt.geom.CubicCurve2D.getFlatness:(DDDDDDDD)D
dreturn
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/awt/geom/CubicCurve2D;
public void subdivide(java.awt.geom.CubicCurve2D, java.awt.geom.CubicCurve2D);
descriptor: (Ljava/awt/geom/CubicCurve2D;Ljava/awt/geom/CubicCurve2D;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // java.awt.geom.CubicCurve2D left
start local 2 // java.awt.geom.CubicCurve2D right
0: .line 926
aload 0 /* this */
aload 1 /* left */
aload 2 /* right */
invokestatic java.awt.geom.CubicCurve2D.subdivide:(Ljava/awt/geom/CubicCurve2D;Ljava/awt/geom/CubicCurve2D;Ljava/awt/geom/CubicCurve2D;)V
1: .line 927
return
end local 2 // java.awt.geom.CubicCurve2D right
end local 1 // java.awt.geom.CubicCurve2D left
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/awt/geom/CubicCurve2D;
0 2 1 left Ljava/awt/geom/CubicCurve2D;
0 2 2 right Ljava/awt/geom/CubicCurve2D;
MethodParameters:
Name Flags
left
right
public static void subdivide(java.awt.geom.CubicCurve2D, java.awt.geom.CubicCurve2D, java.awt.geom.CubicCurve2D);
descriptor: (Ljava/awt/geom/CubicCurve2D;Ljava/awt/geom/CubicCurve2D;Ljava/awt/geom/CubicCurve2D;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=17, locals=31, args_size=3
start local 0 // java.awt.geom.CubicCurve2D src
start local 1 // java.awt.geom.CubicCurve2D left
start local 2 // java.awt.geom.CubicCurve2D right
0: .line 945
aload 0 /* src */
invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
dstore 3 /* x1 */
start local 3 // double x1
1: .line 946
aload 0 /* src */
invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
dstore 5 /* y1 */
start local 5 // double y1
2: .line 947
aload 0 /* src */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlX1:()D
dstore 7 /* ctrlx1 */
start local 7 // double ctrlx1
3: .line 948
aload 0 /* src */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlY1:()D
dstore 9 /* ctrly1 */
start local 9 // double ctrly1
4: .line 949
aload 0 /* src */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlX2:()D
dstore 11 /* ctrlx2 */
start local 11 // double ctrlx2
5: .line 950
aload 0 /* src */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlY2:()D
dstore 13 /* ctrly2 */
start local 13 // double ctrly2
6: .line 951
aload 0 /* src */
invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
dstore 15 /* x2 */
start local 15 // double x2
7: .line 952
aload 0 /* src */
invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
dstore 17 /* y2 */
start local 17 // double y2
8: .line 953
dload 7 /* ctrlx1 */
dload 11 /* ctrlx2 */
dadd
ldc 2.0
ddiv
dstore 19 /* centerx */
start local 19 // double centerx
9: .line 954
dload 9 /* ctrly1 */
dload 13 /* ctrly2 */
dadd
ldc 2.0
ddiv
dstore 21 /* centery */
start local 21 // double centery
10: .line 955
dload 3 /* x1 */
dload 7 /* ctrlx1 */
dadd
ldc 2.0
ddiv
dstore 7 /* ctrlx1 */
11: .line 956
dload 5 /* y1 */
dload 9 /* ctrly1 */
dadd
ldc 2.0
ddiv
dstore 9 /* ctrly1 */
12: .line 957
dload 15 /* x2 */
dload 11 /* ctrlx2 */
dadd
ldc 2.0
ddiv
dstore 11 /* ctrlx2 */
13: .line 958
dload 17 /* y2 */
dload 13 /* ctrly2 */
dadd
ldc 2.0
ddiv
dstore 13 /* ctrly2 */
14: .line 959
dload 7 /* ctrlx1 */
dload 19 /* centerx */
dadd
ldc 2.0
ddiv
dstore 23 /* ctrlx12 */
start local 23 // double ctrlx12
15: .line 960
dload 9 /* ctrly1 */
dload 21 /* centery */
dadd
ldc 2.0
ddiv
dstore 25 /* ctrly12 */
start local 25 // double ctrly12
16: .line 961
dload 11 /* ctrlx2 */
dload 19 /* centerx */
dadd
ldc 2.0
ddiv
dstore 27 /* ctrlx21 */
start local 27 // double ctrlx21
17: .line 962
dload 13 /* ctrly2 */
dload 21 /* centery */
dadd
ldc 2.0
ddiv
dstore 29 /* ctrly21 */
start local 29 // double ctrly21
18: .line 963
dload 23 /* ctrlx12 */
dload 27 /* ctrlx21 */
dadd
ldc 2.0
ddiv
dstore 19 /* centerx */
19: .line 964
dload 25 /* ctrly12 */
dload 29 /* ctrly21 */
dadd
ldc 2.0
ddiv
dstore 21 /* centery */
20: .line 965
aload 1 /* left */
ifnull 24
21: .line 966
aload 1 /* left */
dload 3 /* x1 */
dload 5 /* y1 */
dload 7 /* ctrlx1 */
dload 9 /* ctrly1 */
22: .line 967
dload 23 /* ctrlx12 */
dload 25 /* ctrly12 */
dload 19 /* centerx */
dload 21 /* centery */
23: .line 966
invokevirtual java.awt.geom.CubicCurve2D.setCurve:(DDDDDDDD)V
24: .line 969
StackMap locals: java.awt.geom.CubicCurve2D java.awt.geom.CubicCurve2D java.awt.geom.CubicCurve2D double double double double double double double double double double double double double double
StackMap stack:
aload 2 /* right */
ifnull 28
25: .line 970
aload 2 /* right */
dload 19 /* centerx */
dload 21 /* centery */
dload 27 /* ctrlx21 */
dload 29 /* ctrly21 */
26: .line 971
dload 11 /* ctrlx2 */
dload 13 /* ctrly2 */
dload 15 /* x2 */
dload 17 /* y2 */
27: .line 970
invokevirtual java.awt.geom.CubicCurve2D.setCurve:(DDDDDDDD)V
28: .line 973
StackMap locals:
StackMap stack:
return
end local 29 // double ctrly21
end local 27 // double ctrlx21
end local 25 // double ctrly12
end local 23 // double ctrlx12
end local 21 // double centery
end local 19 // double centerx
end local 17 // double y2
end local 15 // double x2
end local 13 // double ctrly2
end local 11 // double ctrlx2
end local 9 // double ctrly1
end local 7 // double ctrlx1
end local 5 // double y1
end local 3 // double x1
end local 2 // java.awt.geom.CubicCurve2D right
end local 1 // java.awt.geom.CubicCurve2D left
end local 0 // java.awt.geom.CubicCurve2D src
LocalVariableTable:
Start End Slot Name Signature
0 29 0 src Ljava/awt/geom/CubicCurve2D;
0 29 1 left Ljava/awt/geom/CubicCurve2D;
0 29 2 right Ljava/awt/geom/CubicCurve2D;
1 29 3 x1 D
2 29 5 y1 D
3 29 7 ctrlx1 D
4 29 9 ctrly1 D
5 29 11 ctrlx2 D
6 29 13 ctrly2 D
7 29 15 x2 D
8 29 17 y2 D
9 29 19 centerx D
10 29 21 centery D
15 29 23 ctrlx12 D
16 29 25 ctrly12 D
17 29 27 ctrlx21 D
18 29 29 ctrly21 D
MethodParameters:
Name Flags
src
left
right
public static void subdivide(double[], int, double[], int, double[], int);
descriptor: ([DI[DI[DI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=26, args_size=6
start local 0 // double[] src
start local 1 // int srcoff
start local 2 // double[] left
start local 3 // int leftoff
start local 4 // double[] right
start local 5 // int rightoff
0: .line 1006
aload 0 /* src */
iload 1 /* srcoff */
iconst_0
iadd
daload
dstore 6 /* x1 */
start local 6 // double x1
1: .line 1007
aload 0 /* src */
iload 1 /* srcoff */
iconst_1
iadd
daload
dstore 8 /* y1 */
start local 8 // double y1
2: .line 1008
aload 0 /* src */
iload 1 /* srcoff */
iconst_2
iadd
daload
dstore 10 /* ctrlx1 */
start local 10 // double ctrlx1
3: .line 1009
aload 0 /* src */
iload 1 /* srcoff */
iconst_3
iadd
daload
dstore 12 /* ctrly1 */
start local 12 // double ctrly1
4: .line 1010
aload 0 /* src */
iload 1 /* srcoff */
iconst_4
iadd
daload
dstore 14 /* ctrlx2 */
start local 14 // double ctrlx2
5: .line 1011
aload 0 /* src */
iload 1 /* srcoff */
iconst_5
iadd
daload
dstore 16 /* ctrly2 */
start local 16 // double ctrly2
6: .line 1012
aload 0 /* src */
iload 1 /* srcoff */
bipush 6
iadd
daload
dstore 18 /* x2 */
start local 18 // double x2
7: .line 1013
aload 0 /* src */
iload 1 /* srcoff */
bipush 7
iadd
daload
dstore 20 /* y2 */
start local 20 // double y2
8: .line 1014
aload 2 /* left */
ifnull 11
9: .line 1015
aload 2 /* left */
iload 3 /* leftoff */
iconst_0
iadd
dload 6 /* x1 */
dastore
10: .line 1016
aload 2 /* left */
iload 3 /* leftoff */
iconst_1
iadd
dload 8 /* y1 */
dastore
11: .line 1018
StackMap locals: double[] int double[] int double[] int double double double double double double double double
StackMap stack:
aload 4 /* right */
ifnull 14
12: .line 1019
aload 4 /* right */
iload 5 /* rightoff */
bipush 6
iadd
dload 18 /* x2 */
dastore
13: .line 1020
aload 4 /* right */
iload 5 /* rightoff */
bipush 7
iadd
dload 20 /* y2 */
dastore
14: .line 1022
StackMap locals:
StackMap stack:
dload 6 /* x1 */
dload 10 /* ctrlx1 */
dadd
ldc 2.0
ddiv
dstore 6 /* x1 */
15: .line 1023
dload 8 /* y1 */
dload 12 /* ctrly1 */
dadd
ldc 2.0
ddiv
dstore 8 /* y1 */
16: .line 1024
dload 18 /* x2 */
dload 14 /* ctrlx2 */
dadd
ldc 2.0
ddiv
dstore 18 /* x2 */
17: .line 1025
dload 20 /* y2 */
dload 16 /* ctrly2 */
dadd
ldc 2.0
ddiv
dstore 20 /* y2 */
18: .line 1026
dload 10 /* ctrlx1 */
dload 14 /* ctrlx2 */
dadd
ldc 2.0
ddiv
dstore 22 /* centerx */
start local 22 // double centerx
19: .line 1027
dload 12 /* ctrly1 */
dload 16 /* ctrly2 */
dadd
ldc 2.0
ddiv
dstore 24 /* centery */
start local 24 // double centery
20: .line 1028
dload 6 /* x1 */
dload 22 /* centerx */
dadd
ldc 2.0
ddiv
dstore 10 /* ctrlx1 */
21: .line 1029
dload 8 /* y1 */
dload 24 /* centery */
dadd
ldc 2.0
ddiv
dstore 12 /* ctrly1 */
22: .line 1030
dload 18 /* x2 */
dload 22 /* centerx */
dadd
ldc 2.0
ddiv
dstore 14 /* ctrlx2 */
23: .line 1031
dload 20 /* y2 */
dload 24 /* centery */
dadd
ldc 2.0
ddiv
dstore 16 /* ctrly2 */
24: .line 1032
dload 10 /* ctrlx1 */
dload 14 /* ctrlx2 */
dadd
ldc 2.0
ddiv
dstore 22 /* centerx */
25: .line 1033
dload 12 /* ctrly1 */
dload 16 /* ctrly2 */
dadd
ldc 2.0
ddiv
dstore 24 /* centery */
26: .line 1034
aload 2 /* left */
ifnull 33
27: .line 1035
aload 2 /* left */
iload 3 /* leftoff */
iconst_2
iadd
dload 6 /* x1 */
dastore
28: .line 1036
aload 2 /* left */
iload 3 /* leftoff */
iconst_3
iadd
dload 8 /* y1 */
dastore
29: .line 1037
aload 2 /* left */
iload 3 /* leftoff */
iconst_4
iadd
dload 10 /* ctrlx1 */
dastore
30: .line 1038
aload 2 /* left */
iload 3 /* leftoff */
iconst_5
iadd
dload 12 /* ctrly1 */
dastore
31: .line 1039
aload 2 /* left */
iload 3 /* leftoff */
bipush 6
iadd
dload 22 /* centerx */
dastore
32: .line 1040
aload 2 /* left */
iload 3 /* leftoff */
bipush 7
iadd
dload 24 /* centery */
dastore
33: .line 1042
StackMap locals: double double
StackMap stack:
aload 4 /* right */
ifnull 40
34: .line 1043
aload 4 /* right */
iload 5 /* rightoff */
iconst_0
iadd
dload 22 /* centerx */
dastore
35: .line 1044
aload 4 /* right */
iload 5 /* rightoff */
iconst_1
iadd
dload 24 /* centery */
dastore
36: .line 1045
aload 4 /* right */
iload 5 /* rightoff */
iconst_2
iadd
dload 14 /* ctrlx2 */
dastore
37: .line 1046
aload 4 /* right */
iload 5 /* rightoff */
iconst_3
iadd
dload 16 /* ctrly2 */
dastore
38: .line 1047
aload 4 /* right */
iload 5 /* rightoff */
iconst_4
iadd
dload 18 /* x2 */
dastore
39: .line 1048
aload 4 /* right */
iload 5 /* rightoff */
iconst_5
iadd
dload 20 /* y2 */
dastore
40: .line 1050
StackMap locals:
StackMap stack:
return
end local 24 // double centery
end local 22 // double centerx
end local 20 // double y2
end local 18 // double x2
end local 16 // double ctrly2
end local 14 // double ctrlx2
end local 12 // double ctrly1
end local 10 // double ctrlx1
end local 8 // double y1
end local 6 // double x1
end local 5 // int rightoff
end local 4 // double[] right
end local 3 // int leftoff
end local 2 // double[] left
end local 1 // int srcoff
end local 0 // double[] src
LocalVariableTable:
Start End Slot Name Signature
0 41 0 src [D
0 41 1 srcoff I
0 41 2 left [D
0 41 3 leftoff I
0 41 4 right [D
0 41 5 rightoff I
1 41 6 x1 D
2 41 8 y1 D
3 41 10 ctrlx1 D
4 41 12 ctrly1 D
5 41 14 ctrlx2 D
6 41 16 ctrly2 D
7 41 18 x2 D
8 41 20 y2 D
19 41 22 centerx D
20 41 24 centery D
MethodParameters:
Name Flags
src
srcoff
left
leftoff
right
rightoff
public static int solveCubic(double[]);
descriptor: ([D)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 // double[] eqn
0: .line 1069
aload 0 /* eqn */
aload 0 /* eqn */
invokestatic java.awt.geom.CubicCurve2D.solveCubic:([D[D)I
ireturn
end local 0 // double[] eqn
LocalVariableTable:
Start End Slot Name Signature
0 1 0 eqn [D
MethodParameters:
Name Flags
eqn
public static int solveCubic(double[], double[]);
descriptor: ([D[D)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=33, args_size=2
start local 0 // double[] eqn
start local 1 // double[] res
0: .line 1092
aload 0 /* eqn */
iconst_3
daload
dstore 2 /* d */
start local 2 // double d
1: .line 1093
dload 2 /* d */
dconst_0
dcmpl
ifne 3
2: .line 1094
aload 0 /* eqn */
aload 1 /* res */
invokestatic java.awt.geom.QuadCurve2D.solveQuadratic:([D[D)I
ireturn
3: .line 1098
StackMap locals: double
StackMap stack:
aload 0 /* eqn */
iconst_2
daload
dload 2 /* d */
ddiv
dstore 4 /* A */
start local 4 // double A
4: .line 1099
aload 0 /* eqn */
iconst_1
daload
dload 2 /* d */
ddiv
dstore 6 /* B */
start local 6 // double B
5: .line 1100
aload 0 /* eqn */
iconst_0
daload
dload 2 /* d */
ddiv
dstore 8 /* C */
start local 8 // double C
6: .line 1111
dload 4 /* A */
dload 4 /* A */
dmul
dstore 10 /* sq_A */
start local 10 // double sq_A
7: .line 1112
ldc 0.3333333333333333
ldc -0.3333333333333333
dload 10 /* sq_A */
dmul
dload 6 /* B */
dadd
dmul
dstore 12 /* p */
start local 12 // double p
8: .line 1113
ldc 0.5
ldc 0.07407407407407407
dload 4 /* A */
dmul
dload 10 /* sq_A */
dmul
ldc 0.3333333333333333
dload 4 /* A */
dmul
dload 6 /* B */
dmul
dsub
dload 8 /* C */
dadd
dmul
dstore 14 /* q */
start local 14 // double q
9: .line 1117
dload 12 /* p */
dload 12 /* p */
dmul
dload 12 /* p */
dmul
dstore 16 /* cb_p */
start local 16 // double cb_p
10: .line 1118
dload 14 /* q */
dload 14 /* q */
dmul
dload 16 /* cb_p */
dadd
dstore 18 /* D */
start local 18 // double D
11: .line 1120
ldc 0.3333333333333333
dload 4 /* A */
dmul
dstore 20 /* sub */
start local 20 // double sub
12: .line 1123
dload 18 /* D */
dconst_0
dcmpg
ifge 27
13: .line 1125
ldc 0.3333333333333333
dload 14 /* q */
dneg
dload 16 /* cb_p */
dneg
invokestatic java.lang.Math.sqrt:(D)D
ddiv
invokestatic java.lang.Math.acos:(D)D
dmul
dstore 23 /* phi */
start local 23 // double phi
14: .line 1126
ldc 2.0
dload 12 /* p */
dneg
invokestatic java.lang.Math.sqrt:(D)D
dmul
dstore 25 /* t */
start local 25 // double t
15: .line 1128
aload 1 /* res */
aload 0 /* eqn */
if_acmpne 17
16: .line 1129
aload 0 /* eqn */
iconst_4
invokestatic java.util.Arrays.copyOf:([DI)[D
astore 0 /* eqn */
17: .line 1132
StackMap locals: double[] double[] double double double double double double double double double double top double double
StackMap stack:
aload 1 /* res */
iconst_0
dload 25 /* t */
dload 23 /* phi */
invokestatic java.lang.Math.cos:(D)D
dmul
dastore
18: .line 1133
aload 1 /* res */
iconst_1
dload 25 /* t */
dneg
dload 23 /* phi */
ldc 1.0471975511965976
dadd
invokestatic java.lang.Math.cos:(D)D
dmul
dastore
19: .line 1134
aload 1 /* res */
iconst_2
dload 25 /* t */
dneg
dload 23 /* phi */
ldc 1.0471975511965976
dsub
invokestatic java.lang.Math.cos:(D)D
dmul
dastore
20: .line 1135
iconst_3
istore 22 /* num */
start local 22 // int num
21: .line 1137
iconst_0
istore 27 /* i */
start local 27 // int i
22: goto 25
23: .line 1138
StackMap locals: double[] double[] double double double double double double double double double double int double double int
StackMap stack:
aload 1 /* res */
iload 27 /* i */
dup2
daload
dload 20 /* sub */
dsub
dastore
24: .line 1137
iinc 27 /* i */ 1
StackMap locals:
StackMap stack:
25: iload 27 /* i */
iload 22 /* num */
if_icmplt 23
end local 27 // int i
end local 25 // double t
end local 23 // double phi
26: .line 1141
goto 39
end local 22 // int num
27: .line 1144
StackMap locals: double[] double[] double double double double double double double double double double
StackMap stack:
dload 18 /* D */
invokestatic java.lang.Math.sqrt:(D)D
dstore 23 /* sqrt_D */
start local 23 // double sqrt_D
28: .line 1145
dload 23 /* sqrt_D */
dload 14 /* q */
dsub
invokestatic java.lang.Math.cbrt:(D)D
dstore 25 /* u */
start local 25 // double u
29: .line 1146
dload 23 /* sqrt_D */
dload 14 /* q */
dadd
invokestatic java.lang.Math.cbrt:(D)D
dneg
dstore 27 /* v */
start local 27 // double v
30: .line 1147
dload 25 /* u */
dload 27 /* v */
dadd
dstore 29 /* uv */
start local 29 // double uv
31: .line 1149
iconst_1
istore 22 /* num */
start local 22 // int num
32: .line 1151
ldc 1.2E9
dload 29 /* uv */
invokestatic java.lang.Math.abs:(D)D
dload 20 /* sub */
invokestatic java.lang.Math.abs:(D)D
dadd
invokestatic java.lang.Math.ulp:(D)D
dmul
dstore 31 /* err */
start local 31 // double err
33: .line 1152
dload 18 /* D */
dload 31 /* err */
invokestatic java.awt.geom.CubicCurve2D.iszero:(DD)Z
ifne 34
dload 25 /* u */
dload 27 /* v */
dload 31 /* err */
invokestatic java.awt.geom.CubicCurve2D.within:(DDD)Z
ifeq 38
34: .line 1153
StackMap locals: double[] double[] double double double double double double double double double double int double double double double double
StackMap stack:
aload 1 /* res */
aload 0 /* eqn */
if_acmpne 36
35: .line 1154
aload 0 /* eqn */
iconst_4
invokestatic java.util.Arrays.copyOf:([DI)[D
astore 0 /* eqn */
36: .line 1156
StackMap locals:
StackMap stack:
aload 1 /* res */
iconst_1
dload 29 /* uv */
ldc 2.0
ddiv
dneg
dload 20 /* sub */
dsub
dastore
37: .line 1157
iconst_2
istore 22 /* num */
38: .line 1160
StackMap locals:
StackMap stack:
aload 1 /* res */
iconst_0
dload 29 /* uv */
dload 20 /* sub */
dsub
dastore
end local 31 // double err
end local 29 // double uv
end local 27 // double v
end local 25 // double u
end local 23 // double sqrt_D
39: .line 1163
StackMap locals: double[] double[] double double double double double double double double double double int
StackMap stack:
iload 22 /* num */
iconst_1
if_icmple 41
40: .line 1164
aload 0 /* eqn */
aload 1 /* res */
iload 22 /* num */
invokestatic java.awt.geom.CubicCurve2D.fixRoots:([D[DI)I
istore 22 /* num */
41: .line 1166
StackMap locals:
StackMap stack:
iload 22 /* num */
iconst_2
if_icmple 43
aload 1 /* res */
iconst_2
daload
aload 1 /* res */
iconst_1
daload
dcmpl
ifeq 42
aload 1 /* res */
iconst_2
daload
aload 1 /* res */
iconst_0
daload
dcmpl
ifne 43
42: .line 1167
StackMap locals:
StackMap stack:
iinc 22 /* num */ -1
43: .line 1169
StackMap locals:
StackMap stack:
iload 22 /* num */
iconst_1
if_icmple 45
aload 1 /* res */
iconst_1
daload
aload 1 /* res */
iconst_0
daload
dcmpl
ifne 45
44: .line 1170
aload 1 /* res */
iconst_1
aload 1 /* res */
iinc 22 /* num */ -1
iload 22 /* num */
daload
dastore
45: .line 1172
StackMap locals:
StackMap stack:
iload 22 /* num */
ireturn
end local 22 // int num
end local 20 // double sub
end local 18 // double D
end local 16 // double cb_p
end local 14 // double q
end local 12 // double p
end local 10 // double sq_A
end local 8 // double C
end local 6 // double B
end local 4 // double A
end local 2 // double d
end local 1 // double[] res
end local 0 // double[] eqn
LocalVariableTable:
Start End Slot Name Signature
0 46 0 eqn [D
0 46 1 res [D
1 46 2 d D
4 46 4 A D
5 46 6 B D
6 46 8 C D
7 46 10 sq_A D
8 46 12 p D
9 46 14 q D
10 46 16 cb_p D
11 46 18 D D
12 46 20 sub D
21 27 22 num I
32 46 22 num I
14 26 23 phi D
15 26 25 t D
22 26 27 i I
28 39 23 sqrt_D D
29 39 25 u D
30 39 27 v D
31 39 29 uv D
33 39 31 err D
MethodParameters:
Name Flags
eqn
res
private static int fixRoots(double[], double[], int);
descriptor: ([D[DI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=19, args_size=3
start local 0 // double[] eqn
start local 1 // double[] res
start local 2 // int num
0: .line 1183
iconst_3
newarray 7
dup
iconst_0
aload 0 /* eqn */
iconst_1
daload
dastore
dup
iconst_1
ldc 2.0
aload 0 /* eqn */
iconst_2
daload
dmul
dastore
dup
iconst_2
ldc 3.0
aload 0 /* eqn */
iconst_3
daload
dmul
dastore
astore 3 /* intervals */
start local 3 // double[] intervals
1: .line 1184
aload 3 /* intervals */
aload 3 /* intervals */
invokestatic java.awt.geom.QuadCurve2D.solveQuadratic:([D[D)I
istore 4 /* critCount */
start local 4 // int critCount
2: .line 1185
iload 4 /* critCount */
iconst_2
if_icmpne 4
aload 3 /* intervals */
iconst_0
daload
aload 3 /* intervals */
iconst_1
daload
dcmpl
ifne 4
3: .line 1186
iinc 4 /* critCount */ -1
4: .line 1188
StackMap locals: double[] int
StackMap stack:
iload 4 /* critCount */
iconst_2
if_icmpne 8
aload 3 /* intervals */
iconst_0
daload
aload 3 /* intervals */
iconst_1
daload
dcmpl
ifle 8
5: .line 1189
aload 3 /* intervals */
iconst_0
daload
dstore 5 /* tmp */
start local 5 // double tmp
6: .line 1190
aload 3 /* intervals */
iconst_0
aload 3 /* intervals */
iconst_1
daload
dastore
7: .line 1191
aload 3 /* intervals */
iconst_1
dload 5 /* tmp */
dastore
end local 5 // double tmp
8: .line 1204
StackMap locals:
StackMap stack:
iload 2 /* num */
iconst_3
if_icmpne 33
9: .line 1205
aload 0 /* eqn */
invokestatic java.awt.geom.CubicCurve2D.getRootUpperBound:([D)D
dstore 5 /* xe */
start local 5 // double xe
10: .line 1206
dload 5 /* xe */
dneg
dstore 7 /* x0 */
start local 7 // double x0
11: .line 1208
aload 1 /* res */
iconst_0
iload 2 /* num */
invokestatic java.util.Arrays.sort:([DII)V
12: .line 1209
iload 4 /* critCount */
iconst_2
if_icmpne 17
13: .line 1212
aload 1 /* res */
iconst_0
aload 0 /* eqn */
dload 7 /* x0 */
aload 3 /* intervals */
iconst_0
daload
aload 1 /* res */
iconst_0
daload
invokestatic java.awt.geom.CubicCurve2D.refineRootWithHint:([DDDD)D
dastore
14: .line 1213
aload 1 /* res */
iconst_1
aload 0 /* eqn */
aload 3 /* intervals */
iconst_0
daload
aload 3 /* intervals */
iconst_1
daload
aload 1 /* res */
iconst_1
daload
invokestatic java.awt.geom.CubicCurve2D.refineRootWithHint:([DDDD)D
dastore
15: .line 1214
aload 1 /* res */
iconst_2
aload 0 /* eqn */
aload 3 /* intervals */
iconst_1
daload
dload 5 /* xe */
aload 1 /* res */
iconst_2
daload
invokestatic java.awt.geom.CubicCurve2D.refineRootWithHint:([DDDD)D
dastore
16: .line 1215
iconst_3
ireturn
17: .line 1216
StackMap locals: double double
StackMap stack:
iload 4 /* critCount */
iconst_1
if_icmpne 30
18: .line 1220
aload 0 /* eqn */
iconst_3
daload
dstore 9 /* fxe */
start local 9 // double fxe
19: .line 1221
dload 9 /* fxe */
dneg
dstore 11 /* fx0 */
start local 11 // double fx0
20: .line 1223
aload 3 /* intervals */
iconst_0
daload
dstore 13 /* x1 */
start local 13 // double x1
21: .line 1224
aload 0 /* eqn */
iconst_3
dload 13 /* x1 */
invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
dstore 15 /* fx1 */
start local 15 // double fx1
22: .line 1236
dload 11 /* fx0 */
dload 15 /* fx1 */
invokestatic java.awt.geom.CubicCurve2D.oppositeSigns:(DD)Z
ifeq 25
23: .line 1237
aload 1 /* res */
iconst_0
aload 0 /* eqn */
dload 7 /* x0 */
dload 13 /* x1 */
aload 1 /* res */
iconst_0
daload
invokestatic java.awt.geom.CubicCurve2D.bisectRootWithHint:([DDDD)D
dastore
24: .line 1238
goto 48
StackMap locals: double[] double[] int double[] int double double double double double double
StackMap stack:
25: dload 15 /* fx1 */
dload 9 /* fxe */
invokestatic java.awt.geom.CubicCurve2D.oppositeSigns:(DD)Z
ifeq 28
26: .line 1239
aload 1 /* res */
iconst_0
aload 0 /* eqn */
dload 13 /* x1 */
dload 5 /* xe */
aload 1 /* res */
iconst_2
daload
invokestatic java.awt.geom.CubicCurve2D.bisectRootWithHint:([DDDD)D
dastore
27: .line 1240
goto 48
28: .line 1241
StackMap locals:
StackMap stack:
aload 1 /* res */
iconst_0
dload 13 /* x1 */
dastore
end local 15 // double fx1
end local 13 // double x1
end local 11 // double fx0
end local 9 // double fxe
29: .line 1244
goto 48
StackMap locals: double[] double[] int double[] int double double
StackMap stack:
30: iload 4 /* critCount */
ifne 48
31: .line 1245
aload 1 /* res */
iconst_0
aload 0 /* eqn */
dload 7 /* x0 */
dload 5 /* xe */
aload 1 /* res */
iconst_1
daload
invokestatic java.awt.geom.CubicCurve2D.bisectRootWithHint:([DDDD)D
dastore
end local 7 // double x0
end local 5 // double xe
32: .line 1248
goto 48
StackMap locals:
StackMap stack:
33: iload 2 /* num */
iconst_2
if_icmpne 48
iload 4 /* critCount */
iconst_2
if_icmpne 48
34: .line 1257
aload 1 /* res */
iconst_0
daload
dstore 5 /* goodRoot */
start local 5 // double goodRoot
35: .line 1258
aload 1 /* res */
iconst_1
daload
dstore 7 /* badRoot */
start local 7 // double badRoot
36: .line 1259
aload 3 /* intervals */
iconst_0
daload
dstore 9 /* x1 */
start local 9 // double x1
37: .line 1260
aload 3 /* intervals */
iconst_1
daload
dstore 11 /* x2 */
start local 11 // double x2
38: .line 1268
dload 9 /* x1 */
dload 5 /* goodRoot */
dsub
invokestatic java.lang.Math.abs:(D)D
dload 11 /* x2 */
dload 5 /* goodRoot */
dsub
invokestatic java.lang.Math.abs:(D)D
dcmpl
ifle 39
dload 9 /* x1 */
goto 40
StackMap locals: double[] double[] int double[] int double double double double
StackMap stack:
39: dload 11 /* x2 */
StackMap locals:
StackMap stack: double
40: dstore 13 /* x */
start local 13 // double x
41: .line 1269
aload 0 /* eqn */
iconst_3
dload 13 /* x */
invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
dstore 15 /* fx */
start local 15 // double fx
42: .line 1271
dload 15 /* fx */
ldc 1.0E7
dload 13 /* x */
invokestatic java.lang.Math.ulp:(D)D
dmul
invokestatic java.awt.geom.CubicCurve2D.iszero:(DD)Z
ifeq 48
43: .line 1272
aload 0 /* eqn */
iconst_3
dload 7 /* badRoot */
invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
dstore 17 /* badRootVal */
start local 17 // double badRootVal
44: .line 1273
aload 1 /* res */
iconst_1
dload 17 /* badRootVal */
invokestatic java.lang.Math.abs:(D)D
dload 15 /* fx */
invokestatic java.lang.Math.abs:(D)D
dcmpg
ifge 45
dload 7 /* badRoot */
goto 46
StackMap locals: double[] double[] int double[] int double double double double double double double
StackMap stack: double[] int
45: dload 13 /* x */
StackMap locals: double[] double[] int double[] int double double double double double double double
StackMap stack: double[] int double
46: dastore
47: .line 1274
iconst_2
ireturn
end local 17 // double badRootVal
end local 15 // double fx
end local 13 // double x
end local 11 // double x2
end local 9 // double x1
end local 7 // double badRoot
end local 5 // double goodRoot
48: .line 1278
StackMap locals: double[] double[] int double[] int
StackMap stack:
iconst_1
ireturn
end local 4 // int critCount
end local 3 // double[] intervals
end local 2 // int num
end local 1 // double[] res
end local 0 // double[] eqn
LocalVariableTable:
Start End Slot Name Signature
0 49 0 eqn [D
0 49 1 res [D
0 49 2 num I
1 49 3 intervals [D
2 49 4 critCount I
6 8 5 tmp D
10 32 5 xe D
11 32 7 x0 D
19 29 9 fxe D
20 29 11 fx0 D
21 29 13 x1 D
22 29 15 fx1 D
35 48 5 goodRoot D
36 48 7 badRoot D
37 48 9 x1 D
38 48 11 x2 D
41 48 13 x D
42 48 15 fx D
44 48 17 badRootVal D
MethodParameters:
Name Flags
eqn
res
num
private static double refineRootWithHint(double[], double, double, double);
descriptor: ([DDDD)D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=19, args_size=4
start local 0 // double[] eqn
start local 1 // double min
start local 3 // double max
start local 5 // double t
0: .line 1283
dload 5 /* t */
dload 1 /* min */
dload 3 /* max */
invokestatic java.awt.geom.CubicCurve2D.inInterval:(DDD)Z
ifne 2
1: .line 1284
dload 5 /* t */
dreturn
2: .line 1286
StackMap locals:
StackMap stack:
iconst_3
newarray 7
dup
iconst_0
aload 0 /* eqn */
iconst_1
daload
dastore
dup
iconst_1
ldc 2.0
aload 0 /* eqn */
iconst_2
daload
dmul
dastore
dup
iconst_2
ldc 3.0
aload 0 /* eqn */
iconst_3
daload
dmul
dastore
astore 7 /* deriv */
start local 7 // double[] deriv
3: .line 1287
dload 5 /* t */
dstore 8 /* origt */
start local 8 // double origt
4: .line 1288
iconst_0
istore 10 /* i */
start local 10 // int i
5: goto 14
6: .line 1289
StackMap locals: double[] double int
StackMap stack:
aload 7 /* deriv */
iconst_2
dload 5 /* t */
invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
dstore 11 /* slope */
start local 11 // double slope
7: .line 1290
aload 0 /* eqn */
iconst_3
dload 5 /* t */
invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
dstore 13 /* y */
start local 13 // double y
8: .line 1291
dload 13 /* y */
dload 11 /* slope */
ddiv
dneg
dstore 15 /* delta */
start local 15 // double delta
9: .line 1292
dload 5 /* t */
dload 15 /* delta */
dadd
dstore 17 /* newt */
start local 17 // double newt
10: .line 1294
dload 11 /* slope */
dconst_0
dcmpl
ifeq 15
dload 13 /* y */
dconst_0
dcmpl
ifeq 15
dload 5 /* t */
dload 17 /* newt */
dcmpl
ifne 12
11: .line 1295
goto 15
12: .line 1298
StackMap locals: double[] double double double double[] double int double double double double
StackMap stack:
dload 17 /* newt */
dstore 5 /* t */
end local 17 // double newt
end local 15 // double delta
end local 13 // double y
end local 11 // double slope
13: .line 1288
iinc 10 /* i */ 1
StackMap locals: double[] double double double double[] double int
StackMap stack:
14: iload 10 /* i */
iconst_3
if_icmplt 6
end local 10 // int i
15: .line 1300
StackMap locals:
StackMap stack:
dload 5 /* t */
dload 8 /* origt */
ldc 1000.0
dload 8 /* origt */
invokestatic java.lang.Math.ulp:(D)D
dmul
invokestatic java.awt.geom.CubicCurve2D.within:(DDD)Z
ifeq 17
dload 5 /* t */
dload 1 /* min */
dload 3 /* max */
invokestatic java.awt.geom.CubicCurve2D.inInterval:(DDD)Z
ifeq 17
16: .line 1301
dload 5 /* t */
dreturn
17: .line 1303
StackMap locals:
StackMap stack:
dload 8 /* origt */
dreturn
end local 8 // double origt
end local 7 // double[] deriv
end local 5 // double t
end local 3 // double max
end local 1 // double min
end local 0 // double[] eqn
LocalVariableTable:
Start End Slot Name Signature
0 18 0 eqn [D
0 18 1 min D
0 18 3 max D
0 18 5 t D
3 18 7 deriv [D
4 18 8 origt D
5 15 10 i I
7 13 11 slope D
8 13 13 y D
9 13 15 delta D
10 13 17 newt D
MethodParameters:
Name Flags
eqn
min
max
t
private static double bisectRootWithHint(double[], double, double, double);
descriptor: ([DDDD)D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=19, args_size=4
start local 0 // double[] eqn
start local 1 // double x0
start local 3 // double xe
start local 5 // double hint
0: .line 1307
dload 5 /* hint */
dload 1 /* x0 */
dsub
invokestatic java.lang.Math.abs:(D)D
ldc 64.0
ddiv
ldc 0.0625
invokestatic java.lang.Math.min:(DD)D
dstore 7 /* delta1 */
start local 7 // double delta1
1: .line 1308
dload 5 /* hint */
dload 3 /* xe */
dsub
invokestatic java.lang.Math.abs:(D)D
ldc 64.0
ddiv
ldc 0.0625
invokestatic java.lang.Math.min:(DD)D
dstore 9 /* delta2 */
start local 9 // double delta2
2: .line 1309
dload 5 /* hint */
dload 7 /* delta1 */
dsub
dstore 11 /* x02 */
start local 11 // double x02
3: .line 1310
dload 5 /* hint */
dload 9 /* delta2 */
dadd
dstore 13 /* xe2 */
start local 13 // double xe2
4: .line 1311
aload 0 /* eqn */
iconst_3
dload 11 /* x02 */
invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
dstore 15 /* fx02 */
start local 15 // double fx02
5: .line 1312
aload 0 /* eqn */
iconst_3
dload 13 /* xe2 */
invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
dstore 17 /* fxe2 */
start local 17 // double fxe2
6: .line 1313
goto 17
7: .line 1314
StackMap locals: double[] double double double double double double double double double
StackMap stack:
dload 11 /* x02 */
dload 13 /* xe2 */
dcmpl
iflt 9
8: .line 1315
dload 11 /* x02 */
dreturn
9: .line 1317
StackMap locals:
StackMap stack:
dload 11 /* x02 */
dstore 1 /* x0 */
10: .line 1318
dload 13 /* xe2 */
dstore 3 /* xe */
11: .line 1319
dload 7 /* delta1 */
ldc 64.0
ddiv
dstore 7 /* delta1 */
12: .line 1320
dload 9 /* delta2 */
ldc 64.0
ddiv
dstore 9 /* delta2 */
13: .line 1321
dload 5 /* hint */
dload 7 /* delta1 */
dsub
dstore 11 /* x02 */
14: .line 1322
dload 5 /* hint */
dload 9 /* delta2 */
dadd
dstore 13 /* xe2 */
15: .line 1323
aload 0 /* eqn */
iconst_3
dload 11 /* x02 */
invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
dstore 15 /* fx02 */
16: .line 1324
aload 0 /* eqn */
iconst_3
dload 13 /* xe2 */
invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
dstore 17 /* fxe2 */
17: .line 1313
StackMap locals:
StackMap stack:
dload 15 /* fx02 */
dload 17 /* fxe2 */
invokestatic java.awt.geom.CubicCurve2D.oppositeSigns:(DD)Z
ifne 7
18: .line 1326
dload 15 /* fx02 */
dconst_0
dcmpl
ifne 20
19: .line 1327
dload 11 /* x02 */
dreturn
20: .line 1329
StackMap locals:
StackMap stack:
dload 17 /* fxe2 */
dconst_0
dcmpl
ifne 22
21: .line 1330
dload 13 /* xe2 */
dreturn
22: .line 1333
StackMap locals:
StackMap stack:
aload 0 /* eqn */
dload 1 /* x0 */
dload 3 /* xe */
invokestatic java.awt.geom.CubicCurve2D.bisectRoot:([DDD)D
dreturn
end local 17 // double fxe2
end local 15 // double fx02
end local 13 // double xe2
end local 11 // double x02
end local 9 // double delta2
end local 7 // double delta1
end local 5 // double hint
end local 3 // double xe
end local 1 // double x0
end local 0 // double[] eqn
LocalVariableTable:
Start End Slot Name Signature
0 23 0 eqn [D
0 23 1 x0 D
0 23 3 xe D
0 23 5 hint D
1 23 7 delta1 D
2 23 9 delta2 D
3 23 11 x02 D
4 23 13 xe2 D
5 23 15 fx02 D
6 23 17 fxe2 D
MethodParameters:
Name Flags
eqn
x0
xe
hint
private static double bisectRoot(double[], double, double);
descriptor: ([DDD)D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=11, args_size=3
start local 0 // double[] eqn
start local 1 // double x0
start local 3 // double xe
0: .line 1337
aload 0 /* eqn */
iconst_3
dload 1 /* x0 */
invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
dstore 5 /* fx0 */
start local 5 // double fx0
1: .line 1338
dload 1 /* x0 */
dload 3 /* xe */
dload 1 /* x0 */
dsub
ldc 2.0
ddiv
dadd
dstore 7 /* m */
start local 7 // double m
2: .line 1339
goto 12
3: .line 1340
StackMap locals: double double
StackMap stack:
aload 0 /* eqn */
iconst_3
dload 7 /* m */
invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
dstore 9 /* fm */
start local 9 // double fm
4: .line 1341
dload 9 /* fm */
dconst_0
dcmpl
ifne 6
5: .line 1342
dload 7 /* m */
dreturn
6: .line 1344
StackMap locals: double
StackMap stack:
dload 5 /* fx0 */
dload 9 /* fm */
invokestatic java.awt.geom.CubicCurve2D.oppositeSigns:(DD)Z
ifeq 9
7: .line 1345
dload 7 /* m */
dstore 3 /* xe */
8: .line 1346
goto 11
9: .line 1347
StackMap locals:
StackMap stack:
dload 9 /* fm */
dstore 5 /* fx0 */
10: .line 1348
dload 7 /* m */
dstore 1 /* x0 */
11: .line 1350
StackMap locals:
StackMap stack:
dload 1 /* x0 */
dload 3 /* xe */
dload 1 /* x0 */
dsub
ldc 2.0
ddiv
dadd
dstore 7 /* m */
end local 9 // double fm
12: .line 1339
StackMap locals:
StackMap stack:
dload 7 /* m */
dload 1 /* x0 */
dcmpl
ifeq 13
dload 7 /* m */
dload 3 /* xe */
dcmpl
ifne 3
13: .line 1352
StackMap locals:
StackMap stack:
dload 7 /* m */
dreturn
end local 7 // double m
end local 5 // double fx0
end local 3 // double xe
end local 1 // double x0
end local 0 // double[] eqn
LocalVariableTable:
Start End Slot Name Signature
0 14 0 eqn [D
0 14 1 x0 D
0 14 3 xe D
1 14 5 fx0 D
2 14 7 m D
4 12 9 fm D
MethodParameters:
Name Flags
eqn
x0
xe
private static boolean inInterval(double, double, double);
descriptor: (DDD)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 // double t
start local 2 // double min
start local 4 // double max
0: .line 1356
dload 2 /* min */
dload 0 /* t */
dcmpg
ifgt 1
dload 0 /* t */
dload 4 /* max */
dcmpg
ifgt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 4 // double max
end local 2 // double min
end local 0 // double t
LocalVariableTable:
Start End Slot Name Signature
0 2 0 t D
0 2 2 min D
0 2 4 max D
MethodParameters:
Name Flags
t
min
max
private static boolean within(double, double, double);
descriptor: (DDD)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=8, args_size=3
start local 0 // double x
start local 2 // double y
start local 4 // double err
0: .line 1360
dload 2 /* y */
dload 0 /* x */
dsub
dstore 6 /* d */
start local 6 // double d
1: .line 1361
dload 6 /* d */
dload 4 /* err */
dcmpg
ifgt 2
dload 6 /* d */
dload 4 /* err */
dneg
dcmpl
iflt 2
iconst_1
ireturn
StackMap locals: double
StackMap stack:
2: iconst_0
ireturn
end local 6 // double d
end local 4 // double err
end local 2 // double y
end local 0 // double x
LocalVariableTable:
Start End Slot Name Signature
0 3 0 x D
0 3 2 y D
0 3 4 err D
1 3 6 d D
MethodParameters:
Name Flags
x
y
err
private static boolean iszero(double, double);
descriptor: (DD)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=4, args_size=2
start local 0 // double x
start local 2 // double err
0: .line 1365
dload 0 /* x */
dconst_0
dload 2 /* err */
invokestatic java.awt.geom.CubicCurve2D.within:(DDD)Z
ireturn
end local 2 // double err
end local 0 // double x
LocalVariableTable:
Start End Slot Name Signature
0 1 0 x D
0 1 2 err D
MethodParameters:
Name Flags
x
err
private static boolean oppositeSigns(double, double);
descriptor: (DD)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 // double x1
start local 2 // double x2
0: .line 1369
dload 0 /* x1 */
dconst_0
dcmpg
ifge 1
dload 2 /* x2 */
dconst_0
dcmpl
ifgt 3
StackMap locals:
StackMap stack:
1: dload 0 /* x1 */
dconst_0
dcmpl
ifle 2
dload 2 /* x2 */
dconst_0
dcmpg
iflt 3
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 2 // double x2
end local 0 // double x1
LocalVariableTable:
Start End Slot Name Signature
0 4 0 x1 D
0 4 2 x2 D
MethodParameters:
Name Flags
x1
x2
private static double solveEqn(double[], int, double);
descriptor: ([DID)D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 // double[] eqn
start local 1 // int order
start local 2 // double t
0: .line 1373
aload 0 /* eqn */
iload 1 /* order */
daload
dstore 4 /* v */
start local 4 // double v
1: .line 1374
goto 3
2: .line 1375
StackMap locals: double
StackMap stack:
dload 4 /* v */
dload 2 /* t */
dmul
aload 0 /* eqn */
iload 1 /* order */
daload
dadd
dstore 4 /* v */
3: .line 1374
StackMap locals:
StackMap stack:
iinc 1 /* order */ -1
iload 1 /* order */
ifge 2
4: .line 1377
dload 4 /* v */
dreturn
end local 4 // double v
end local 2 // double t
end local 1 // int order
end local 0 // double[] eqn
LocalVariableTable:
Start End Slot Name Signature
0 5 0 eqn [D
0 5 1 order I
0 5 2 t D
1 5 4 v D
MethodParameters:
Name Flags
eqn
order
t
private static double getRootUpperBound(double[]);
descriptor: ([D)D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=11, args_size=1
start local 0 // double[] eqn
0: .line 1389
aload 0 /* eqn */
iconst_3
daload
dstore 1 /* d */
start local 1 // double d
1: .line 1390
aload 0 /* eqn */
iconst_2
daload
dstore 3 /* a */
start local 3 // double a
2: .line 1391
aload 0 /* eqn */
iconst_1
daload
dstore 5 /* b */
start local 5 // double b
3: .line 1392
aload 0 /* eqn */
iconst_0
daload
dstore 7 /* c */
start local 7 // double c
4: .line 1394
dconst_1
dload 3 /* a */
invokestatic java.lang.Math.abs:(D)D
dload 5 /* b */
invokestatic java.lang.Math.abs:(D)D
invokestatic java.lang.Math.max:(DD)D
dload 7 /* c */
invokestatic java.lang.Math.abs:(D)D
invokestatic java.lang.Math.max:(DD)D
dload 1 /* d */
invokestatic java.lang.Math.abs:(D)D
ddiv
dadd
dstore 9 /* M */
start local 9 // double M
5: .line 1395
dload 9 /* M */
dload 9 /* M */
invokestatic java.lang.Math.ulp:(D)D
dconst_1
dadd
dadd
dstore 9 /* M */
6: .line 1396
dload 9 /* M */
dreturn
end local 9 // double M
end local 7 // double c
end local 5 // double b
end local 3 // double a
end local 1 // double d
end local 0 // double[] eqn
LocalVariableTable:
Start End Slot Name Signature
0 7 0 eqn [D
1 7 1 d D
2 7 3 a D
3 7 5 b D
4 7 7 c D
5 7 9 M D
MethodParameters:
Name Flags
eqn
public boolean contains(double, double);
descriptor: (DD)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=22, locals=14, args_size=3
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // double x
start local 3 // double y
0: .line 1405
dload 1 /* x */
dconst_0
dmul
dload 3 /* y */
dconst_0
dmul
dadd
dconst_0
dcmpl
ifeq 2
1: .line 1411
iconst_0
ireturn
2: .line 1415
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
dstore 5 /* x1 */
start local 5 // double x1
3: .line 1416
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
dstore 7 /* y1 */
start local 7 // double y1
4: .line 1417
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
dstore 9 /* x2 */
start local 9 // double x2
5: .line 1418
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
dstore 11 /* y2 */
start local 11 // double y2
6: .line 1420
dload 1 /* x */
dload 3 /* y */
dload 5 /* x1 */
dload 7 /* y1 */
dload 9 /* x2 */
dload 11 /* y2 */
invokestatic sun.awt.geom.Curve.pointCrossingsForLine:(DDDDDD)I
7: .line 1421
dload 1 /* x */
dload 3 /* y */
8: .line 1422
dload 5 /* x1 */
dload 7 /* y1 */
9: .line 1423
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlX1:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlY1:()D
10: .line 1424
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlX2:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlY2:()D
11: .line 1425
dload 9 /* x2 */
dload 11 /* y2 */
iconst_0
12: .line 1421
invokestatic sun.awt.geom.Curve.pointCrossingsForCubic:(DDDDDDDDDDI)I
13: .line 1420
iadd
14: .line 1419
istore 13 /* crossings */
start local 13 // int crossings
15: .line 1426
iload 13 /* crossings */
iconst_1
iand
iconst_1
if_icmpne 16
iconst_1
ireturn
StackMap locals: java.awt.geom.CubicCurve2D double double double double double double int
StackMap stack:
16: iconst_0
ireturn
end local 13 // int crossings
end local 11 // double y2
end local 9 // double x2
end local 7 // double y1
end local 5 // double x1
end local 3 // double y
end local 1 // double x
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljava/awt/geom/CubicCurve2D;
0 17 1 x D
0 17 3 y D
3 17 5 x1 D
4 17 7 y1 D
5 17 9 x2 D
6 17 11 y2 D
15 17 13 crossings I
MethodParameters:
Name Flags
x
y
public boolean contains(java.awt.geom.Point2D);
descriptor: (Ljava/awt/geom/Point2D;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // java.awt.geom.Point2D p
0: .line 1434
aload 0 /* this */
aload 1 /* p */
invokevirtual java.awt.geom.Point2D.getX:()D
aload 1 /* p */
invokevirtual java.awt.geom.Point2D.getY:()D
invokevirtual java.awt.geom.CubicCurve2D.contains:(DD)Z
ireturn
end local 1 // java.awt.geom.Point2D p
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/geom/CubicCurve2D;
0 1 1 p Ljava/awt/geom/Point2D;
MethodParameters:
Name Flags
p
public boolean intersects(double, double, double, double);
descriptor: (DDDD)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=10, args_size=5
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // double x
start local 3 // double y
start local 5 // double w
start local 7 // double h
0: .line 1443
dload 5 /* w */
dconst_0
dcmpg
ifle 1
dload 7 /* h */
dconst_0
dcmpg
ifgt 2
1: .line 1444
StackMap locals:
StackMap stack:
iconst_0
ireturn
2: .line 1447
StackMap locals:
StackMap stack:
aload 0 /* this */
dload 1 /* x */
dload 3 /* y */
dload 5 /* w */
dload 7 /* h */
invokevirtual java.awt.geom.CubicCurve2D.rectCrossings:(DDDD)I
istore 9 /* numCrossings */
start local 9 // int numCrossings
3: .line 1453
iload 9 /* numCrossings */
ifeq 4
iconst_1
ireturn
StackMap locals: int
StackMap stack:
4: iconst_0
ireturn
end local 9 // int numCrossings
end local 7 // double h
end local 5 // double w
end local 3 // double y
end local 1 // double x
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/awt/geom/CubicCurve2D;
0 5 1 x D
0 5 3 y D
0 5 5 w D
0 5 7 h D
3 5 9 numCrossings I
MethodParameters:
Name Flags
x
y
w
h
public boolean intersects(java.awt.geom.Rectangle2D);
descriptor: (Ljava/awt/geom/Rectangle2D;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=2, args_size=2
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // java.awt.geom.Rectangle2D r
0: .line 1461
aload 0 /* this */
aload 1 /* r */
invokevirtual java.awt.geom.Rectangle2D.getX:()D
aload 1 /* r */
invokevirtual java.awt.geom.Rectangle2D.getY:()D
aload 1 /* r */
invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
aload 1 /* r */
invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
invokevirtual java.awt.geom.CubicCurve2D.intersects:(DDDD)Z
ireturn
end local 1 // java.awt.geom.Rectangle2D r
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/geom/CubicCurve2D;
0 1 1 r Ljava/awt/geom/Rectangle2D;
MethodParameters:
Name Flags
r
public boolean contains(double, double, double, double);
descriptor: (DDDD)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=10, args_size=5
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // double x
start local 3 // double y
start local 5 // double w
start local 7 // double h
0: .line 1469
dload 5 /* w */
dconst_0
dcmpg
ifle 1
dload 7 /* h */
dconst_0
dcmpg
ifgt 2
1: .line 1470
StackMap locals:
StackMap stack:
iconst_0
ireturn
2: .line 1473
StackMap locals:
StackMap stack:
aload 0 /* this */
dload 1 /* x */
dload 3 /* y */
dload 5 /* w */
dload 7 /* h */
invokevirtual java.awt.geom.CubicCurve2D.rectCrossings:(DDDD)I
istore 9 /* numCrossings */
start local 9 // int numCrossings
3: .line 1474
iload 9 /* numCrossings */
ifeq 4
iload 9 /* numCrossings */
ldc -2147483648
if_icmpne 5
StackMap locals: int
StackMap stack:
4: iconst_0
goto 6
StackMap locals:
StackMap stack:
5: iconst_1
StackMap locals:
StackMap stack: int
6: ireturn
end local 9 // int numCrossings
end local 7 // double h
end local 5 // double w
end local 3 // double y
end local 1 // double x
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/awt/geom/CubicCurve2D;
0 7 1 x D
0 7 3 y D
0 7 5 w D
0 7 7 h D
3 7 9 numCrossings I
MethodParameters:
Name Flags
x
y
w
h
private int rectCrossings(double, double, double, double);
descriptor: (DDDD)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=26, locals=10, args_size=5
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // double x
start local 3 // double y
start local 5 // double w
start local 7 // double h
0: .line 1478
iconst_0
istore 9 /* crossings */
start local 9 // int crossings
1: .line 1479
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
dcmpl
ifne 2
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
dcmpl
ifeq 10
2: .line 1480
StackMap locals: int
StackMap stack:
iload 9 /* crossings */
3: .line 1481
dload 1 /* x */
dload 3 /* y */
4: .line 1482
dload 1 /* x */
dload 5 /* w */
dadd
dload 3 /* y */
dload 7 /* h */
dadd
5: .line 1483
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
6: .line 1484
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
7: .line 1480
invokestatic sun.awt.geom.Curve.rectCrossingsForLine:(IDDDDDDDD)I
istore 9 /* crossings */
8: .line 1485
iload 9 /* crossings */
ldc -2147483648
if_icmpne 10
9: .line 1486
iload 9 /* crossings */
ireturn
10: .line 1491
StackMap locals:
StackMap stack:
iload 9 /* crossings */
11: .line 1492
dload 1 /* x */
dload 3 /* y */
12: .line 1493
dload 1 /* x */
dload 5 /* w */
dadd
dload 3 /* y */
dload 7 /* h */
dadd
13: .line 1494
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
14: .line 1495
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlX2:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlY2:()D
15: .line 1496
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlX1:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getCtrlY1:()D
16: .line 1497
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
iconst_0
17: .line 1491
invokestatic sun.awt.geom.Curve.rectCrossingsForCubic:(IDDDDDDDDDDDDI)I
ireturn
end local 9 // int crossings
end local 7 // double h
end local 5 // double w
end local 3 // double y
end local 1 // double x
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljava/awt/geom/CubicCurve2D;
0 18 1 x D
0 18 3 y D
0 18 5 w D
0 18 7 h D
1 18 9 crossings I
MethodParameters:
Name Flags
x
y
w
h
public boolean contains(java.awt.geom.Rectangle2D);
descriptor: (Ljava/awt/geom/Rectangle2D;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=2, args_size=2
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // java.awt.geom.Rectangle2D r
0: .line 1505
aload 0 /* this */
aload 1 /* r */
invokevirtual java.awt.geom.Rectangle2D.getX:()D
aload 1 /* r */
invokevirtual java.awt.geom.Rectangle2D.getY:()D
aload 1 /* r */
invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
aload 1 /* r */
invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
invokevirtual java.awt.geom.CubicCurve2D.contains:(DDDD)Z
ireturn
end local 1 // java.awt.geom.Rectangle2D r
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/geom/CubicCurve2D;
0 1 1 r Ljava/awt/geom/Rectangle2D;
MethodParameters:
Name Flags
r
public java.awt.Rectangle getBounds();
descriptor: ()Ljava/awt/Rectangle;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // java.awt.geom.CubicCurve2D this
0: .line 1513
aload 0 /* this */
invokevirtual java.awt.geom.CubicCurve2D.getBounds2D:()Ljava/awt/geom/Rectangle2D;
invokevirtual java.awt.geom.Rectangle2D.getBounds:()Ljava/awt/Rectangle;
areturn
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/geom/CubicCurve2D;
public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform);
descriptor: (Ljava/awt/geom/AffineTransform;)Ljava/awt/geom/PathIterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // java.awt.geom.AffineTransform at
0: .line 1533
new java.awt.geom.CubicIterator
dup
aload 0 /* this */
aload 1 /* at */
invokespecial java.awt.geom.CubicIterator.<init>:(Ljava/awt/geom/CubicCurve2D;Ljava/awt/geom/AffineTransform;)V
areturn
end local 1 // java.awt.geom.AffineTransform at
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/geom/CubicCurve2D;
0 1 1 at Ljava/awt/geom/AffineTransform;
MethodParameters:
Name Flags
at
public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform, double);
descriptor: (Ljava/awt/geom/AffineTransform;D)Ljava/awt/geom/PathIterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 // java.awt.geom.CubicCurve2D this
start local 1 // java.awt.geom.AffineTransform at
start local 2 // double flatness
0: .line 1556
new java.awt.geom.FlatteningPathIterator
dup
aload 0 /* this */
aload 1 /* at */
invokevirtual java.awt.geom.CubicCurve2D.getPathIterator:(Ljava/awt/geom/AffineTransform;)Ljava/awt/geom/PathIterator;
dload 2 /* flatness */
invokespecial java.awt.geom.FlatteningPathIterator.<init>:(Ljava/awt/geom/PathIterator;D)V
areturn
end local 2 // double flatness
end local 1 // java.awt.geom.AffineTransform at
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/awt/geom/CubicCurve2D;
0 1 1 at Ljava/awt/geom/AffineTransform;
0 1 2 flatness D
MethodParameters:
Name Flags
at
flatness
public java.lang.Object clone();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 // java.awt.geom.CubicCurve2D this
0: .line 1569
aload 0 /* this */
invokespecial java.lang.Object.clone:()Ljava/lang/Object;
1: areturn
2: .line 1570
StackMap locals:
StackMap stack: java.lang.CloneNotSupportedException
astore 1 /* e */
start local 1 // java.lang.CloneNotSupportedException e
3: .line 1572
new java.lang.InternalError
dup
aload 1 /* e */
invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 // java.lang.CloneNotSupportedException e
end local 0 // java.awt.geom.CubicCurve2D this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/awt/geom/CubicCurve2D;
3 4 1 e Ljava/lang/CloneNotSupportedException;
Exception table:
from to target type
0 1 2 Class java.lang.CloneNotSupportedException
}
SourceFile: "CubicCurve2D.java"
NestMembers:
java.awt.geom.CubicCurve2D$Double java.awt.geom.CubicCurve2D$Float
InnerClasses:
public Double = java.awt.geom.CubicCurve2D$Double of java.awt.geom.CubicCurve2D
public Float = java.awt.geom.CubicCurve2D$Float of java.awt.geom.CubicCurve2D