public class javafx.scene.shape.Polygon extends javafx.scene.shape.Shape
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javafx.scene.shape.Polygon
  super_class: javafx.scene.shape.Shape
{
  private final com.sun.javafx.geom.Path2D shape;
    descriptor: Lcom/sun/javafx/geom/Path2D;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final javafx.collections.ObservableList<java.lang.Double> points;
    descriptor: Ljavafx/collections/ObservableList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljavafx/collections/ObservableList<Ljava/lang/Double;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 62
            new javafx.scene.shape.Polygon$1
            dup
            invokespecial javafx.scene.shape.Polygon$1.<init>:()V
            invokestatic com.sun.javafx.scene.shape.PolygonHelper.setPolygonAccessor:(Lcom/sun/javafx/scene/shape/PolygonHelper$PolygonAccessor;)V
         1: .line 84
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // javafx.scene.shape.Polygon this
         0: .line 96
            aload 0 /* this */
            invokespecial javafx.scene.shape.Shape.<init>:()V
         1: .line 86
            aload 0 /* this */
            new com.sun.javafx.geom.Path2D
            dup
            invokespecial com.sun.javafx.geom.Path2D.<init>:()V
            putfield javafx.scene.shape.Polygon.shape:Lcom/sun/javafx/geom/Path2D;
         2: .line 90
            aload 0 /* this */
            invokestatic com.sun.javafx.scene.shape.PolygonHelper.initHelper:(Ljavafx/scene/shape/Polygon;)V
         3: .line 116
            aload 0 /* this */
            new javafx.scene.shape.Polygon$2
            dup
            aload 0 /* this */
            invokespecial javafx.scene.shape.Polygon$2.<init>:(Ljavafx/scene/shape/Polygon;)V
            putfield javafx.scene.shape.Polygon.points:Ljavafx/collections/ObservableList;
         4: .line 97
            return
        end local 0 // javafx.scene.shape.Polygon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavafx/scene/shape/Polygon;

  public void <init>(double[]);
    descriptor: ([D)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // javafx.scene.shape.Polygon this
        start local 1 // double[] points
         0: .line 103
            aload 0 /* this */
            invokespecial javafx.scene.shape.Shape.<init>:()V
         1: .line 86
            aload 0 /* this */
            new com.sun.javafx.geom.Path2D
            dup
            invokespecial com.sun.javafx.geom.Path2D.<init>:()V
            putfield javafx.scene.shape.Polygon.shape:Lcom/sun/javafx/geom/Path2D;
         2: .line 90
            aload 0 /* this */
            invokestatic com.sun.javafx.scene.shape.PolygonHelper.initHelper:(Ljavafx/scene/shape/Polygon;)V
         3: .line 116
            aload 0 /* this */
            new javafx.scene.shape.Polygon$2
            dup
            aload 0 /* this */
            invokespecial javafx.scene.shape.Polygon$2.<init>:(Ljavafx/scene/shape/Polygon;)V
            putfield javafx.scene.shape.Polygon.points:Ljavafx/collections/ObservableList;
         4: .line 104
            aload 1 /* points */
            ifnull 10
         5: .line 105
            aload 1 /* points */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: javafx.scene.shape.Polygon double[] top top int int double[]
      StackMap stack:
         6: aload 6
            iload 4
            daload
            dstore 2 /* p */
        start local 2 // double p
         7: .line 106
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getPoints:()Ljavafx/collections/ObservableList;
            dload 2 /* p */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokeinterface javafx.collections.ObservableList.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // double p
         8: .line 105
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 6
        10: .line 109
      StackMap locals: javafx.scene.shape.Polygon double[]
      StackMap stack:
            return
        end local 1 // double[] points
        end local 0 // javafx.scene.shape.Polygon this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Ljavafx/scene/shape/Polygon;
            0   11     1  points  [D
            7    8     2       p  D
    MethodParameters:
        Name  Flags
      points  

  public final javafx.collections.ObservableList<java.lang.Double> getPoints();
    descriptor: ()Ljavafx/collections/ObservableList;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javafx.scene.shape.Polygon this
         0: .line 128
            aload 0 /* this */
            getfield javafx.scene.shape.Polygon.points:Ljavafx/collections/ObservableList;
            areturn
        end local 0 // javafx.scene.shape.Polygon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavafx/scene/shape/Polygon;
    Signature: ()Ljavafx/collections/ObservableList<Ljava/lang/Double;>;

  private com.sun.javafx.sg.prism.NGNode doCreatePeer();
    descriptor: ()Lcom/sun/javafx/sg/prism/NGNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javafx.scene.shape.Polygon this
         0: .line 134
            new com.sun.javafx.sg.prism.NGPolygon
            dup
            invokespecial com.sun.javafx.sg.prism.NGPolygon.<init>:()V
            areturn
        end local 0 // javafx.scene.shape.Polygon this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavafx/scene/shape/Polygon;

  private com.sun.javafx.geom.BaseBounds doComputeGeomBounds(com.sun.javafx.geom.BaseBounds, com.sun.javafx.geom.transform.BaseTransform);
    descriptor: (Lcom/sun/javafx/geom/BaseBounds;Lcom/sun/javafx/geom/transform/BaseTransform;)Lcom/sun/javafx/geom/BaseBounds;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=15, locals=5, args_size=3
        start local 0 // javafx.scene.shape.Polygon this
        start local 1 // com.sun.javafx.geom.BaseBounds bounds
        start local 2 // com.sun.javafx.geom.transform.BaseTransform tx
         0: .line 141
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getMode:()Lcom/sun/javafx/sg/prism/NGShape$Mode;
            getstatic com.sun.javafx.sg.prism.NGShape$Mode.EMPTY:Lcom/sun/javafx/sg/prism/NGShape$Mode;
            if_acmpeq 1
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getPoints:()Ljavafx/collections/ObservableList;
            invokeinterface javafx.collections.ObservableList.size:()I
            iconst_1
            if_icmpgt 2
         1: .line 142
      StackMap locals:
      StackMap stack:
            aload 1 /* bounds */
            invokevirtual com.sun.javafx.geom.BaseBounds.makeEmpty:()Lcom/sun/javafx/geom/BaseBounds;
            areturn
         2: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getPoints:()Ljavafx/collections/ObservableList;
            invokeinterface javafx.collections.ObservableList.size:()I
            iconst_2
            if_icmpne 11
         3: .line 146
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getMode:()Lcom/sun/javafx/sg/prism/NGShape$Mode;
            getstatic com.sun.javafx.sg.prism.NGShape$Mode.FILL:Lcom/sun/javafx/sg/prism/NGShape$Mode;
            if_acmpeq 4
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getStrokeType:()Ljavafx/scene/shape/StrokeType;
            getstatic javafx.scene.shape.StrokeType.INSIDE:Ljavafx/scene/shape/StrokeType;
            if_acmpne 5
         4: .line 147
      StackMap locals:
      StackMap stack:
            aload 1 /* bounds */
            invokevirtual com.sun.javafx.geom.BaseBounds.makeEmpty:()Lcom/sun/javafx/geom/BaseBounds;
            areturn
         5: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getStrokeWidth:()D
            dstore 3 /* upad */
        start local 3 // double upad
         6: .line 150
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getStrokeType:()Ljavafx/scene/shape/StrokeType;
            getstatic javafx.scene.shape.StrokeType.CENTERED:Ljavafx/scene/shape/StrokeType;
            if_acmpne 8
         7: .line 151
            dload 3 /* upad */
            ldc 2.0
            ddiv
            dstore 3 /* upad */
         8: .line 153
      StackMap locals: double
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bounds */
            aload 2 /* tx */
            dload 3 /* upad */
            ldc 0.5
         9: .line 154
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getPoints:()Ljavafx/collections/ObservableList;
            iconst_0
            invokeinterface javafx.collections.ObservableList.get:(I)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getPoints:()Ljavafx/collections/ObservableList;
            iconst_1
            invokeinterface javafx.collections.ObservableList.get:(I)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dconst_0
            dconst_0
        10: .line 153
            invokevirtual javafx.scene.shape.Polygon.computeBounds:(Lcom/sun/javafx/geom/BaseBounds;Lcom/sun/javafx/geom/transform/BaseTransform;DDDDDD)Lcom/sun/javafx/geom/BaseBounds;
            areturn
        end local 3 // double upad
        11: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bounds */
            aload 2 /* tx */
            aload 0 /* this */
            invokestatic com.sun.javafx.scene.shape.ShapeHelper.configShape:(Ljavafx/scene/shape/Shape;)Lcom/sun/javafx/geom/Shape;
            invokevirtual javafx.scene.shape.Polygon.computeShapeBounds:(Lcom/sun/javafx/geom/BaseBounds;Lcom/sun/javafx/geom/transform/BaseTransform;Lcom/sun/javafx/geom/Shape;)Lcom/sun/javafx/geom/BaseBounds;
            areturn
        end local 2 // com.sun.javafx.geom.transform.BaseTransform tx
        end local 1 // com.sun.javafx.geom.BaseBounds bounds
        end local 0 // javafx.scene.shape.Polygon this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Ljavafx/scene/shape/Polygon;
            0   12     1  bounds  Lcom/sun/javafx/geom/BaseBounds;
            0   12     2      tx  Lcom/sun/javafx/geom/transform/BaseTransform;
            6   11     3    upad  D
    MethodParameters:
        Name  Flags
      bounds  
      tx      

  private com.sun.javafx.geom.Path2D doConfigShape();
    descriptor: ()Lcom/sun/javafx/geom/Path2D;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // javafx.scene.shape.Polygon this
         0: .line 164
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getPoints:()Ljavafx/collections/ObservableList;
            iconst_0
            invokeinterface javafx.collections.ObservableList.get:(I)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dstore 1 /* p1 */
        start local 1 // double p1
         1: .line 165
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getPoints:()Ljavafx/collections/ObservableList;
            iconst_1
            invokeinterface javafx.collections.ObservableList.get:(I)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dstore 3 /* p2 */
        start local 3 // double p2
         2: .line 166
            aload 0 /* this */
            getfield javafx.scene.shape.Polygon.shape:Lcom/sun/javafx/geom/Path2D;
            invokevirtual com.sun.javafx.geom.Path2D.reset:()V
         3: .line 167
            aload 0 /* this */
            getfield javafx.scene.shape.Polygon.shape:Lcom/sun/javafx/geom/Path2D;
            dload 1 /* p1 */
            d2f
            dload 3 /* p2 */
            d2f
            invokevirtual com.sun.javafx.geom.Path2D.moveTo:(FF)V
         4: .line 168
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getPoints:()Ljavafx/collections/ObservableList;
            invokeinterface javafx.collections.ObservableList.size:()I
            bipush -2
            iand
            istore 5 /* numValidPoints */
        start local 5 // int numValidPoints
         5: .line 169
            iconst_2
            istore 6 /* i */
        start local 6 // int i
         6: goto 10
         7: .line 170
      StackMap locals: javafx.scene.shape.Polygon double double int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getPoints:()Ljavafx/collections/ObservableList;
            iload 6 /* i */
            invokeinterface javafx.collections.ObservableList.get:(I)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dstore 1 /* p1 */
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getPoints:()Ljavafx/collections/ObservableList;
            iload 6 /* i */
            iconst_1
            iadd
            invokeinterface javafx.collections.ObservableList.get:(I)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dstore 3 /* p2 */
         8: .line 171
            aload 0 /* this */
            getfield javafx.scene.shape.Polygon.shape:Lcom/sun/javafx/geom/Path2D;
            dload 1 /* p1 */
            d2f
            dload 3 /* p2 */
            d2f
            invokevirtual com.sun.javafx.geom.Path2D.lineTo:(FF)V
         9: .line 169
            iinc 6 /* i */ 2
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            iload 5 /* numValidPoints */
            if_icmplt 7
        end local 6 // int i
        11: .line 173
            aload 0 /* this */
            getfield javafx.scene.shape.Polygon.shape:Lcom/sun/javafx/geom/Path2D;
            invokevirtual com.sun.javafx.geom.Path2D.closePath:()V
        12: .line 174
            aload 0 /* this */
            getfield javafx.scene.shape.Polygon.shape:Lcom/sun/javafx/geom/Path2D;
            areturn
        end local 5 // int numValidPoints
        end local 3 // double p2
        end local 1 // double p1
        end local 0 // javafx.scene.shape.Polygon this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Ljavafx/scene/shape/Polygon;
            1   13     1              p1  D
            2   13     3              p2  D
            5   13     5  numValidPoints  I
            6   11     6               i  I

  private void doUpdatePeer();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // javafx.scene.shape.Polygon this
         0: .line 181
            aload 0 /* this */
            getstatic com.sun.javafx.scene.DirtyBits.NODE_GEOMETRY:Lcom/sun/javafx/scene/DirtyBits;
            invokestatic com.sun.javafx.scene.NodeHelper.isDirty:(Ljavafx/scene/Node;Lcom/sun/javafx/scene/DirtyBits;)Z
            ifeq 10
         1: .line 182
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getPoints:()Ljavafx/collections/ObservableList;
            invokeinterface javafx.collections.ObservableList.size:()I
            bipush -2
            iand
            istore 1 /* numValidPoints */
        start local 1 // int numValidPoints
         2: .line 183
            iload 1 /* numValidPoints */
            newarray 6
            astore 2 /* points_array */
        start local 2 // float[] points_array
         3: .line 184
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 7
         5: .line 185
      StackMap locals: int float[] int
      StackMap stack:
            aload 2 /* points_array */
            iload 3 /* i */
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getPoints:()Ljavafx/collections/ObservableList;
            iload 3 /* i */
            invokeinterface javafx.collections.ObservableList.get:(I)Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            d2f
            fastore
         6: .line 184
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            iload 1 /* numValidPoints */
            if_icmplt 5
        end local 3 // int i
         8: .line 187
            aload 0 /* this */
            invokestatic com.sun.javafx.scene.NodeHelper.getPeer:(Ljavafx/scene/Node;)Lcom/sun/javafx/sg/prism/NGNode;
            checkcast com.sun.javafx.sg.prism.NGPolygon
            astore 3 /* peer */
        start local 3 // com.sun.javafx.sg.prism.NGPolygon peer
         9: .line 188
            aload 3 /* peer */
            aload 2 /* points_array */
            invokevirtual com.sun.javafx.sg.prism.NGPolygon.updatePolygon:([F)V
        end local 3 // com.sun.javafx.sg.prism.NGPolygon peer
        end local 2 // float[] points_array
        end local 1 // int numValidPoints
        10: .line 190
      StackMap locals:
      StackMap stack:
            return
        end local 0 // javafx.scene.shape.Polygon this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Ljavafx/scene/shape/Polygon;
            2   10     1  numValidPoints  I
            3   10     2    points_array  [F
            4    8     3               i  I
            9   10     3            peer  Lcom/sun/javafx/sg/prism/NGPolygon;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // javafx.scene.shape.Polygon this
         0: .line 198
            new java.lang.StringBuilder
            dup
            ldc "Polygon["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 200
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getId:()Ljava/lang/String;
            astore 2 /* id */
        start local 2 // java.lang.String id
         2: .line 201
            aload 2 /* id */
            ifnull 4
         3: .line 202
            aload 1 /* sb */
            ldc "id="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* id */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 205
      StackMap locals: java.lang.StringBuilder java.lang.String
      StackMap stack:
            aload 1 /* sb */
            ldc "points="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getPoints:()Ljavafx/collections/ObservableList;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         5: .line 207
            aload 1 /* sb */
            ldc ", fill="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getFill:()Ljavafx/scene/paint/Paint;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         6: .line 209
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getStroke:()Ljavafx/scene/paint/Paint;
            astore 3 /* stroke */
        start local 3 // javafx.scene.paint.Paint stroke
         7: .line 210
            aload 3 /* stroke */
            ifnull 10
         8: .line 211
            aload 1 /* sb */
            ldc ", stroke="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* stroke */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         9: .line 212
            aload 1 /* sb */
            ldc ", strokeWidth="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual javafx.scene.shape.Polygon.getStrokeWidth:()D
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            pop
        10: .line 215
      StackMap locals: javafx.scene.paint.Paint
      StackMap stack:
            aload 1 /* sb */
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // javafx.scene.paint.Paint stroke
        end local 2 // java.lang.String id
        end local 1 // java.lang.StringBuilder sb
        end local 0 // javafx.scene.shape.Polygon this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Ljavafx/scene/shape/Polygon;
            1   11     1      sb  Ljava/lang/StringBuilder;
            2   11     2      id  Ljava/lang/String;
            7   11     3  stroke  Ljavafx/scene/paint/Paint;
}
SourceFile: "Polygon.java"
NestMembers:
  javafx.scene.shape.Polygon$1  javafx.scene.shape.Polygon$2
InnerClasses:
  public abstract PolygonAccessor = com.sun.javafx.scene.shape.PolygonHelper$PolygonAccessor of com.sun.javafx.scene.shape.PolygonHelper
  public final Mode = com.sun.javafx.sg.prism.NGShape$Mode of com.sun.javafx.sg.prism.NGShape
  javafx.scene.shape.Polygon$1
  javafx.scene.shape.Polygon$2