class org.apache.lucene.spatial3d.Geo3DUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.lucene.spatial3d.Geo3DUtil
  super_class: java.lang.Object
{
  static final double RADIANS_PER_METER;
    descriptor: D
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1.5696101447687295E-7

  static final double RADIANS_PER_DEGREE;
    descriptor: D
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0.017453292519943295

  private static final double MAX_VALUE;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int BITS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  private static final double MUL;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final double DECODE;
    descriptor: D
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int MIN_ENCODED_VALUE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int MAX_ENCODED_VALUE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 37
            ldc Lorg/apache/lucene/spatial3d/Geo3DUtil;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.lucene.spatial3d.Geo3DUtil.$assertionsDisabled:Z
         3: .line 44
            getstatic org.apache.lucene.spatial3d.geom.PlanetModel.WGS84:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            invokevirtual org.apache.lucene.spatial3d.geom.PlanetModel.getMaximumMagnitude:()D
            putstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
         4: .line 46
            ldc 4.294967296E9
            ldc 2.0
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
            dmul
            ddiv
            putstatic org.apache.lucene.spatial3d.Geo3DUtil.MUL:D
         5: .line 47
            dconst_1
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MUL:D
            ddiv
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.getNextSafeDouble:(D)D
            putstatic org.apache.lucene.spatial3d.Geo3DUtil.DECODE:D
         6: .line 48
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
            dneg
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.encodeValue:(D)I
            putstatic org.apache.lucene.spatial3d.Geo3DUtil.MIN_ENCODED_VALUE:I
         7: .line 49
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.encodeValue:(D)I
            putstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_ENCODED_VALUE:I
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial3d.Geo3DUtil this
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.lucene.spatial3d.Geo3DUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/spatial3d/Geo3DUtil;

  public static int encodeValue(double);
    descriptor: (D)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // double x
         0: .line 52
            dload 0 /* x */
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
            dcmpl
            ifle 2
         1: .line 53
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "value="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            dload 0 /* x */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            ldc " is out-of-bounds (greater than WGS84's planetMax="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 55
      StackMap locals:
      StackMap stack:
            dload 0 /* x */
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
            dneg
            dcmpg
            ifge 4
         3: .line 56
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "value="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            dload 0 /* x */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            ldc " is out-of-bounds (less than than WGS84's -planetMax="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
            dneg
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 58
      StackMap locals:
      StackMap stack:
            dload 0 /* x */
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.DECODE:D
            ddiv
            invokestatic java.lang.Math.floor:(D)D
            d2l
            lstore 2 /* result */
        start local 2 // long result
         5: .line 59
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.$assertionsDisabled:Z
            ifne 6
            lload 2 /* result */
            ldc -2147483648
            lcmp
            ifge 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 60
      StackMap locals: long
      StackMap stack:
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.$assertionsDisabled:Z
            ifne 7
            lload 2 /* result */
            ldc 2147483647
            lcmp
            ifle 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 61
      StackMap locals:
      StackMap stack:
            lload 2 /* result */
            l2i
            ireturn
        end local 2 // long result
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0       x  D
            5    8     2  result  J
    MethodParameters:
      Name  Flags
      x     

  public static double decodeValue(int);
    descriptor: (I)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // int x
         0: .line 66
            iload 0 /* x */
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MIN_ENCODED_VALUE:I
            if_icmpne 3
         1: .line 69
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
            dneg
            dstore 1 /* result */
        start local 1 // double result
         2: .line 70
            goto 7
        end local 1 // double result
      StackMap locals:
      StackMap stack:
         3: iload 0 /* x */
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_ENCODED_VALUE:I
            if_icmpne 6
         4: .line 71
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
            dstore 1 /* result */
        start local 1 // double result
         5: .line 72
            goto 7
        end local 1 // double result
         6: .line 74
      StackMap locals:
      StackMap stack:
            iload 0 /* x */
            i2d
            ldc 0.5
            dadd
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.DECODE:D
            dmul
            dstore 1 /* result */
        start local 1 // double result
         7: .line 76
      StackMap locals: double
      StackMap stack:
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.$assertionsDisabled:Z
            ifne 9
            dload 1 /* result */
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
            dneg
            dcmpl
            iflt 8
            dload 1 /* result */
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
            dcmpg
            ifle 9
      StackMap locals:
      StackMap stack:
         8: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 77
      StackMap locals:
      StackMap stack:
            dload 1 /* result */
            dreturn
        end local 1 // double result
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0       x  I
            2    3     1  result  D
            5    6     1  result  D
            7   10     1  result  D
    MethodParameters:
      Name  Flags
      x     

  static double decodeValueFloor(int);
    descriptor: (I)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int x
         0: .line 83
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.$assertionsDisabled:Z
            ifne 2
            iload 0 /* x */
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_ENCODED_VALUE:I
            if_icmpgt 1
            iload 0 /* x */
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MIN_ENCODED_VALUE:I
            if_icmpge 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 84
      StackMap locals:
      StackMap stack:
            iload 0 /* x */
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MIN_ENCODED_VALUE:I
            if_icmpne 4
         3: .line 85
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
            dneg
            dreturn
         4: .line 87
      StackMap locals:
      StackMap stack:
            iload 0 /* x */
            i2d
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.DECODE:D
            dmul
            dreturn
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     x  I
    MethodParameters:
      Name  Flags
      x     

  private static double getNextSafeDouble(double);
    descriptor: (D)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // double x
         0: .line 95
            dload 0 /* x */
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            lstore 2 /* bits */
        start local 2 // long bits
         1: .line 98
            lload 2 /* bits */
            ldc 2147483647
            ladd
            lstore 2 /* bits */
         2: .line 101
            lload 2 /* bits */
            ldc -2147483648
            land
            lstore 2 /* bits */
         3: .line 104
            lload 2 /* bits */
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            dstore 4 /* result */
        start local 4 // double result
         4: .line 105
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.$assertionsDisabled:Z
            ifne 5
            dload 4 /* result */
            dload 0 /* x */
            dcmpl
            ifgt 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 106
      StackMap locals: long double
      StackMap stack:
            dload 4 /* result */
            dreturn
        end local 4 // double result
        end local 2 // long bits
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0       x  D
            1    6     2    bits  J
            4    6     4  result  D
    MethodParameters:
      Name  Flags
      x     

  static double decodeValueCeil(int);
    descriptor: (I)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // int x
         0: .line 112
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.$assertionsDisabled:Z
            ifne 2
            iload 0 /* x */
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_ENCODED_VALUE:I
            if_icmpgt 1
            iload 0 /* x */
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MIN_ENCODED_VALUE:I
            if_icmpge 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 113
      StackMap locals:
      StackMap stack:
            iload 0 /* x */
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_ENCODED_VALUE:I
            if_icmpne 4
         3: .line 114
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.MAX_VALUE:D
            dreturn
         4: .line 116
      StackMap locals:
      StackMap stack:
            iload 0 /* x */
            iconst_1
            iadd
            i2d
            getstatic org.apache.lucene.spatial3d.Geo3DUtil.DECODE:D
            dmul
            invokestatic java.lang.Math.nextDown:(D)D
            dreturn
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     x  I
    MethodParameters:
      Name  Flags
      x     

  static double fromDegrees(double);
    descriptor: (D)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // double degrees
         0: .line 121
            dload 0 /* degrees */
            ldc 0.017453292519943295
            dmul
            dreturn
        end local 0 // double degrees
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  degrees  D
    MethodParameters:
         Name  Flags
      degrees  final

  static double fromMeters(double);
    descriptor: (D)D
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // double meters
         0: .line 126
            dload 0 /* meters */
            ldc 1.5696101447687295E-7
            dmul
            dreturn
        end local 0 // double meters
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  meters  D
    MethodParameters:
        Name  Flags
      meters  final

  static org.apache.lucene.spatial3d.geom.GeoPolygon fromPolygon(org.apache.lucene.geo.Polygon[]);
    descriptor: ([Lorg/apache/lucene/geo/Polygon;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // org.apache.lucene.geo.Polygon[] polygons
         0: .line 136
            aload 0 /* polygons */
            arraylength
            iconst_1
            if_icmpge 2
         1: .line 137
            new java.lang.IllegalArgumentException
            dup
            ldc "need at least one polygon"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* polygons */
            arraylength
            iconst_1
            if_icmpne 9
         3: .line 141
            aload 0 /* polygons */
            iconst_0
            aaload
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromPolygon:(Lorg/apache/lucene/geo/Polygon;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            astore 2 /* component */
        start local 2 // org.apache.lucene.spatial3d.geom.GeoPolygon component
         4: .line 142
            aload 2 /* component */
            ifnonnull 7
         5: .line 144
            new org.apache.lucene.spatial3d.geom.GeoCompositePolygon
            dup
            getstatic org.apache.lucene.spatial3d.geom.PlanetModel.WGS84:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            invokespecial org.apache.lucene.spatial3d.geom.GeoCompositePolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;)V
            astore 1 /* shape */
        start local 1 // org.apache.lucene.spatial3d.geom.GeoPolygon shape
         6: .line 145
            goto 18
        end local 1 // org.apache.lucene.spatial3d.geom.GeoPolygon shape
         7: .line 146
      StackMap locals: org.apache.lucene.geo.Polygon[] top org.apache.lucene.spatial3d.geom.GeoPolygon
      StackMap stack:
            aload 2 /* component */
            astore 1 /* shape */
        end local 2 // org.apache.lucene.spatial3d.geom.GeoPolygon component
        start local 1 // org.apache.lucene.spatial3d.geom.GeoPolygon shape
         8: .line 148
            goto 18
        end local 1 // org.apache.lucene.spatial3d.geom.GeoPolygon shape
         9: .line 149
      StackMap locals: org.apache.lucene.geo.Polygon[]
      StackMap stack:
            new org.apache.lucene.spatial3d.geom.GeoCompositePolygon
            dup
            getstatic org.apache.lucene.spatial3d.geom.PlanetModel.WGS84:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            invokespecial org.apache.lucene.spatial3d.geom.GeoCompositePolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;)V
            astore 2 /* poly */
        start local 2 // org.apache.lucene.spatial3d.geom.GeoCompositePolygon poly
        10: .line 150
            aload 0 /* polygons */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 16
      StackMap locals: org.apache.lucene.geo.Polygon[] top org.apache.lucene.spatial3d.geom.GeoCompositePolygon top int int org.apache.lucene.geo.Polygon[]
      StackMap stack:
        11: aload 6
            iload 4
            aaload
            astore 3 /* p */
        start local 3 // org.apache.lucene.geo.Polygon p
        12: .line 151
            aload 3 /* p */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromPolygon:(Lorg/apache/lucene/geo/Polygon;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            astore 7 /* component */
        start local 7 // org.apache.lucene.spatial3d.geom.GeoPolygon component
        13: .line 152
            aload 7 /* component */
            ifnull 15
        14: .line 153
            aload 2 /* poly */
            aload 7 /* component */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoCompositePolygon.addShape:(Lorg/apache/lucene/spatial3d/geom/GeoShape;)V
        end local 7 // org.apache.lucene.spatial3d.geom.GeoPolygon component
        end local 3 // org.apache.lucene.geo.Polygon p
        15: .line 150
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        16: iload 4
            iload 5
            if_icmplt 11
        17: .line 156
            aload 2 /* poly */
            astore 1 /* shape */
        end local 2 // org.apache.lucene.spatial3d.geom.GeoCompositePolygon poly
        start local 1 // org.apache.lucene.spatial3d.geom.GeoPolygon shape
        18: .line 158
      StackMap locals: org.apache.lucene.geo.Polygon[] org.apache.lucene.spatial3d.geom.GeoPolygon
      StackMap stack:
            aload 1 /* shape */
            areturn
        end local 1 // org.apache.lucene.spatial3d.geom.GeoPolygon shape
        end local 0 // org.apache.lucene.geo.Polygon[] polygons
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0   polygons  [Lorg/apache/lucene/geo/Polygon;
            6    7     1      shape  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            8    9     1      shape  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
           18   19     1      shape  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            4    8     2  component  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
           10   18     2       poly  Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;
           12   15     3          p  Lorg/apache/lucene/geo/Polygon;
           13   15     7  component  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    MethodParameters:
          Name  Flags
      polygons  final

  static org.apache.lucene.spatial3d.geom.GeoPolygon fromLargePolygon(org.apache.lucene.geo.Polygon[]);
    descriptor: ([Lorg/apache/lucene/geo/Polygon;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.lucene.geo.Polygon[] polygons
         0: .line 169
            aload 0 /* polygons */
            arraylength
            iconst_1
            if_icmpge 2
         1: .line 170
            new java.lang.IllegalArgumentException
            dup
            ldc "need at least one polygon"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 172
      StackMap locals:
      StackMap stack:
            getstatic org.apache.lucene.spatial3d.geom.PlanetModel.WGS84:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            aload 0 /* polygons */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.convertToDescription:([Lorg/apache/lucene/geo/Polygon;)Ljava/util/List;
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.makeLargeGeoPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            areturn
        end local 0 // org.apache.lucene.geo.Polygon[] polygons
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  polygons  [Lorg/apache/lucene/geo/Polygon;
    MethodParameters:
          Name  Flags
      polygons  final

  static org.apache.lucene.spatial3d.geom.GeoPath fromPath(double[], double[], double);
    descriptor: ([D[DD)Lorg/apache/lucene/spatial3d/geom/GeoPath;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=10, args_size=3
        start local 0 // double[] pathLatitudes
        start local 1 // double[] pathLongitudes
        start local 2 // double pathWidthMeters
         0: .line 183
            aload 0 /* pathLatitudes */
            arraylength
            aload 1 /* pathLongitudes */
            arraylength
            if_icmpeq 2
         1: .line 184
            new java.lang.IllegalArgumentException
            dup
            ldc "same number of latitudes and longitudes required"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* pathLatitudes */
            arraylength
            anewarray org.apache.lucene.spatial3d.geom.GeoPoint
            astore 4 /* points */
        start local 4 // org.apache.lucene.spatial3d.geom.GeoPoint[] points
         3: .line 187
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 11
         5: .line 188
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint[] int
      StackMap stack:
            aload 0 /* pathLatitudes */
            iload 5 /* i */
            daload
            dstore 6 /* latitude */
        start local 6 // double latitude
         6: .line 189
            aload 1 /* pathLongitudes */
            iload 5 /* i */
            daload
            dstore 8 /* longitude */
        start local 8 // double longitude
         7: .line 190
            dload 6 /* latitude */
            invokestatic org.apache.lucene.geo.GeoUtils.checkLatitude:(D)V
         8: .line 191
            dload 8 /* longitude */
            invokestatic org.apache.lucene.geo.GeoUtils.checkLongitude:(D)V
         9: .line 192
            aload 4 /* points */
            iload 5 /* i */
            new org.apache.lucene.spatial3d.geom.GeoPoint
            dup
            getstatic org.apache.lucene.spatial3d.geom.PlanetModel.WGS84:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            dload 6 /* latitude */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromDegrees:(D)D
            dload 8 /* longitude */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromDegrees:(D)D
            invokespecial org.apache.lucene.spatial3d.geom.GeoPoint.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;DD)V
            aastore
        end local 8 // double longitude
        end local 6 // double latitude
        10: .line 187
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            aload 0 /* pathLatitudes */
            arraylength
            if_icmplt 5
        end local 5 // int i
        12: .line 194
            getstatic org.apache.lucene.spatial3d.geom.PlanetModel.WGS84:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            dload 2 /* pathWidthMeters */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromMeters:(D)D
            aload 4 /* points */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPathFactory.makeGeoPath:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;D[Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Lorg/apache/lucene/spatial3d/geom/GeoPath;
            areturn
        end local 4 // org.apache.lucene.spatial3d.geom.GeoPoint[] points
        end local 2 // double pathWidthMeters
        end local 1 // double[] pathLongitudes
        end local 0 // double[] pathLatitudes
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0    pathLatitudes  [D
            0   13     1   pathLongitudes  [D
            0   13     2  pathWidthMeters  D
            3   13     4           points  [Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            4   12     5                i  I
            6   10     6         latitude  D
            7   10     8        longitude  D
    MethodParameters:
                 Name  Flags
      pathLatitudes    final
      pathLongitudes   final
      pathWidthMeters  final

  static org.apache.lucene.spatial3d.geom.GeoCircle fromDistance(double, double, double);
    descriptor: (DDD)Lorg/apache/lucene/spatial3d/geom/GeoCircle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // double latitude
        start local 2 // double longitude
        start local 4 // double radiusMeters
         0: .line 205
            dload 0 /* latitude */
            invokestatic org.apache.lucene.geo.GeoUtils.checkLatitude:(D)V
         1: .line 206
            dload 2 /* longitude */
            invokestatic org.apache.lucene.geo.GeoUtils.checkLongitude:(D)V
         2: .line 207
            getstatic org.apache.lucene.spatial3d.geom.PlanetModel.WGS84:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            dload 0 /* latitude */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromDegrees:(D)D
            dload 2 /* longitude */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromDegrees:(D)D
            dload 4 /* radiusMeters */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromMeters:(D)D
            invokestatic org.apache.lucene.spatial3d.geom.GeoCircleFactory.makeGeoCircle:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;DDD)Lorg/apache/lucene/spatial3d/geom/GeoCircle;
            areturn
        end local 4 // double radiusMeters
        end local 2 // double longitude
        end local 0 // double latitude
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0      latitude  D
            0    3     2     longitude  D
            0    3     4  radiusMeters  D
    MethodParameters:
              Name  Flags
      latitude      final
      longitude     final
      radiusMeters  final

  static org.apache.lucene.spatial3d.geom.GeoBBox fromBox(double, double, double, double);
    descriptor: (DDDD)Lorg/apache/lucene/spatial3d/geom/GeoBBox;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=8, args_size=4
        start local 0 // double minLatitude
        start local 2 // double maxLatitude
        start local 4 // double minLongitude
        start local 6 // double maxLongitude
         0: .line 219
            dload 0 /* minLatitude */
            invokestatic org.apache.lucene.geo.GeoUtils.checkLatitude:(D)V
         1: .line 220
            dload 4 /* minLongitude */
            invokestatic org.apache.lucene.geo.GeoUtils.checkLongitude:(D)V
         2: .line 221
            dload 2 /* maxLatitude */
            invokestatic org.apache.lucene.geo.GeoUtils.checkLatitude:(D)V
         3: .line 222
            dload 6 /* maxLongitude */
            invokestatic org.apache.lucene.geo.GeoUtils.checkLongitude:(D)V
         4: .line 223
            getstatic org.apache.lucene.spatial3d.geom.PlanetModel.WGS84:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
         5: .line 224
            dload 2 /* maxLatitude */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromDegrees:(D)D
            dload 0 /* minLatitude */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromDegrees:(D)D
            dload 4 /* minLongitude */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromDegrees:(D)D
            dload 6 /* maxLongitude */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromDegrees:(D)D
         6: .line 223
            invokestatic org.apache.lucene.spatial3d.geom.GeoBBoxFactory.makeGeoBBox:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;DDDD)Lorg/apache/lucene/spatial3d/geom/GeoBBox;
            areturn
        end local 6 // double maxLongitude
        end local 4 // double minLongitude
        end local 2 // double maxLatitude
        end local 0 // double minLatitude
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0   minLatitude  D
            0    7     2   maxLatitude  D
            0    7     4  minLongitude  D
            0    7     6  maxLongitude  D
    MethodParameters:
              Name  Flags
      minLatitude   final
      maxLatitude   final
      minLongitude  final
      maxLongitude  final

  private static org.apache.lucene.spatial3d.geom.GeoPolygon fromPolygon(org.apache.lucene.geo.Polygon);
    descriptor: (Lorg/apache/lucene/geo/Polygon;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=8, args_size=1
        start local 0 // org.apache.lucene.geo.Polygon polygon
         0: .line 236
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.getHoles:()[Lorg/apache/lucene/geo/Polygon;
            astore 1 /* theHoles */
        start local 1 // org.apache.lucene.geo.Polygon[] theHoles
         1: .line 237
            new java.util.ArrayList
            dup
            aload 1 /* theHoles */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* holeList */
        start local 2 // java.util.List holeList
         2: .line 238
            aload 1 /* theHoles */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: org.apache.lucene.geo.Polygon org.apache.lucene.geo.Polygon[] java.util.List top int int org.apache.lucene.geo.Polygon[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* hole */
        start local 3 // org.apache.lucene.geo.Polygon hole
         4: .line 240
            aload 3 /* hole */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromPolygon:(Lorg/apache/lucene/geo/Polygon;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            astore 7 /* component */
        start local 7 // org.apache.lucene.spatial3d.geom.GeoPolygon component
         5: .line 241
            aload 7 /* component */
            ifnull 7
         6: .line 242
            aload 2 /* holeList */
            aload 7 /* component */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.apache.lucene.spatial3d.geom.GeoPolygon component
        end local 3 // org.apache.lucene.geo.Polygon hole
         7: .line 238
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 3
         9: .line 247
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.getPolyLats:()[D
            astore 3 /* polyLats */
        start local 3 // double[] polyLats
        10: .line 248
            aload 0 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.getPolyLons:()[D
            astore 4 /* polyLons */
        start local 4 // double[] polyLons
        11: .line 251
            new java.util.ArrayList
            dup
            aload 3 /* polyLats */
            arraylength
            iconst_1
            isub
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* points */
        start local 5 // java.util.List points
        12: .line 253
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        13: goto 17
        14: .line 254
      StackMap locals: org.apache.lucene.geo.Polygon org.apache.lucene.geo.Polygon[] java.util.List double[] double[] java.util.List int
      StackMap stack:
            aload 3 /* polyLats */
            arraylength
            iconst_2
            isub
            iload 6 /* i */
            isub
            istore 7 /* index */
        start local 7 // int index
        15: .line 255
            aload 5 /* points */
            new org.apache.lucene.spatial3d.geom.GeoPoint
            dup
            getstatic org.apache.lucene.spatial3d.geom.PlanetModel.WGS84:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            aload 3 /* polyLats */
            iload 7 /* index */
            daload
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromDegrees:(D)D
            aload 4 /* polyLons */
            iload 7 /* index */
            daload
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromDegrees:(D)D
            invokespecial org.apache.lucene.spatial3d.geom.GeoPoint.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;DD)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // int index
        16: .line 253
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 6 /* i */
            aload 3 /* polyLats */
            arraylength
            iconst_1
            isub
            if_icmplt 14
        end local 6 // int i
        18: .line 258
            getstatic org.apache.lucene.spatial3d.geom.PlanetModel.WGS84:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            aload 5 /* points */
            aload 2 /* holeList */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.makeGeoPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            astore 6 /* rval */
        start local 6 // org.apache.lucene.spatial3d.geom.GeoPolygon rval
        19: .line 260
            aload 6 /* rval */
            areturn
        end local 6 // org.apache.lucene.spatial3d.geom.GeoPolygon rval
        end local 5 // java.util.List points
        end local 4 // double[] polyLons
        end local 3 // double[] polyLats
        end local 2 // java.util.List holeList
        end local 1 // org.apache.lucene.geo.Polygon[] theHoles
        end local 0 // org.apache.lucene.geo.Polygon polygon
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0    polygon  Lorg/apache/lucene/geo/Polygon;
            1   20     1   theHoles  [Lorg/apache/lucene/geo/Polygon;
            2   20     2   holeList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;
            4    7     3       hole  Lorg/apache/lucene/geo/Polygon;
            5    7     7  component  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
           10   20     3   polyLats  [D
           11   20     4   polyLons  [D
           12   20     5     points  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
           13   18     6          i  I
           15   16     7      index  I
           19   20     6       rval  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    MethodParameters:
         Name  Flags
      polygon  final

  private static java.util.List<org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription> convertToDescription(org.apache.lucene.geo.Polygon[]);
    descriptor: ([Lorg/apache/lucene/geo/Polygon;)Ljava/util/List;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=8, locals=13, args_size=1
        start local 0 // org.apache.lucene.geo.Polygon[] polygons
         0: .line 269
            new java.util.ArrayList
            dup
            aload 0 /* polygons */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* descriptions */
        start local 1 // java.util.List descriptions
         1: .line 270
            aload 0 /* polygons */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 16
      StackMap locals: org.apache.lucene.geo.Polygon[] java.util.List top int int org.apache.lucene.geo.Polygon[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* polygon */
        start local 2 // org.apache.lucene.geo.Polygon polygon
         3: .line 271
            aload 2 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.getHoles:()[Lorg/apache/lucene/geo/Polygon;
            astore 6 /* theHoles */
        start local 6 // org.apache.lucene.geo.Polygon[] theHoles
         4: .line 272
            aload 6 /* theHoles */
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.convertToDescription:([Lorg/apache/lucene/geo/Polygon;)Ljava/util/List;
            astore 7 /* holes */
        start local 7 // java.util.List holes
         5: .line 275
            aload 2 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.getPolyLats:()[D
            astore 8 /* polyLats */
        start local 8 // double[] polyLats
         6: .line 276
            aload 2 /* polygon */
            invokevirtual org.apache.lucene.geo.Polygon.getPolyLons:()[D
            astore 9 /* polyLons */
        start local 9 // double[] polyLons
         7: .line 279
            new java.util.ArrayList
            dup
            aload 8 /* polyLats */
            arraylength
            iconst_1
            isub
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 10 /* points */
        start local 10 // java.util.List points
         8: .line 281
            iconst_0
            istore 11 /* i */
        start local 11 // int i
         9: goto 13
        10: .line 282
      StackMap locals: org.apache.lucene.geo.Polygon[] java.util.List org.apache.lucene.geo.Polygon int int org.apache.lucene.geo.Polygon[] org.apache.lucene.geo.Polygon[] java.util.List double[] double[] java.util.List int
      StackMap stack:
            aload 8 /* polyLats */
            arraylength
            iconst_2
            isub
            iload 11 /* i */
            isub
            istore 12 /* index */
        start local 12 // int index
        11: .line 283
            aload 10 /* points */
            new org.apache.lucene.spatial3d.geom.GeoPoint
            dup
            getstatic org.apache.lucene.spatial3d.geom.PlanetModel.WGS84:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            aload 8 /* polyLats */
            iload 12 /* index */
            daload
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromDegrees:(D)D
            aload 9 /* polyLons */
            iload 12 /* index */
            daload
            invokestatic org.apache.lucene.spatial3d.Geo3DUtil.fromDegrees:(D)D
            invokespecial org.apache.lucene.spatial3d.geom.GeoPoint.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;DD)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // int index
        12: .line 281
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 11 /* i */
            aload 8 /* polyLats */
            arraylength
            iconst_1
            isub
            if_icmplt 10
        end local 11 // int i
        14: .line 286
            aload 1 /* descriptions */
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription
            dup
            aload 10 /* points */
            aload 7 /* holes */
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription.<init>:(Ljava/util/List;Ljava/util/List;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // java.util.List points
        end local 9 // double[] polyLons
        end local 8 // double[] polyLats
        end local 7 // java.util.List holes
        end local 6 // org.apache.lucene.geo.Polygon[] theHoles
        end local 2 // org.apache.lucene.geo.Polygon polygon
        15: .line 270
            iinc 3 1
      StackMap locals: org.apache.lucene.geo.Polygon[] java.util.List top int int org.apache.lucene.geo.Polygon[]
      StackMap stack:
        16: iload 3
            iload 4
            if_icmplt 2
        17: .line 288
            aload 1 /* descriptions */
            areturn
        end local 1 // java.util.List descriptions
        end local 0 // org.apache.lucene.geo.Polygon[] polygons
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0      polygons  [Lorg/apache/lucene/geo/Polygon;
            1   18     1  descriptions  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;>;
            3   15     2       polygon  Lorg/apache/lucene/geo/Polygon;
            4   15     6      theHoles  [Lorg/apache/lucene/geo/Polygon;
            5   15     7         holes  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;>;
            6   15     8      polyLats  [D
            7   15     9      polyLons  [D
            8   15    10        points  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            9   14    11             i  I
           11   12    12         index  I
    Signature: ([Lorg/apache/lucene/geo/Polygon;)Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;>;
    MethodParameters:
          Name  Flags
      polygons  final
}
SourceFile: "Geo3DUtil.java"
InnerClasses:
  public PolygonDescription = org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription of org.apache.lucene.spatial3d.geom.GeoPolygonFactory