class org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator implements org.apache.lucene.spatial3d.geom.GeoComplexPolygon$CountingEdgeIterator
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator
  super_class: java.lang.Object
{
  private final org.apache.lucene.spatial3d.geom.GeoPoint testPoint;
    descriptor: Lorg/apache/lucene/spatial3d/geom/GeoPoint;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.spatial3d.geom.Plane plane;
    descriptor: Lorg/apache/lucene/spatial3d/geom/Plane;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.spatial3d.geom.Plane abovePlane;
    descriptor: Lorg/apache/lucene/spatial3d/geom/Plane;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.spatial3d.geom.Plane belowPlane;
    descriptor: Lorg/apache/lucene/spatial3d/geom/Plane;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.spatial3d.geom.Membership bound1;
    descriptor: Lorg/apache/lucene/spatial3d/geom/Membership;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.lucene.spatial3d.geom.Membership bound2;
    descriptor: Lorg/apache/lucene/spatial3d/geom/Membership;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final double thePointX;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final double thePointY;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final double thePointZ;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean onEdge;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int aboveCrossingCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int belowCrossingCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  final org.apache.lucene.spatial3d.geom.GeoComplexPolygon this$0;
    descriptor: Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  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=1, locals=0, args_size=0
         0: .line 1180
            ldc Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon;
            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.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.lucene.spatial3d.geom.GeoComplexPolygon, org.apache.lucene.spatial3d.geom.GeoPoint, org.apache.lucene.spatial3d.geom.Plane, org.apache.lucene.spatial3d.geom.Plane, org.apache.lucene.spatial3d.geom.Plane, double, double, double);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/Plane;Lorg/apache/lucene/spatial3d/geom/Plane;Lorg/apache/lucene/spatial3d/geom/Plane;DDD)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=14, args_size=9
        start local 0 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator this
        start local 2 // org.apache.lucene.spatial3d.geom.GeoPoint testPoint
        start local 3 // org.apache.lucene.spatial3d.geom.Plane plane
        start local 4 // org.apache.lucene.spatial3d.geom.Plane abovePlane
        start local 5 // org.apache.lucene.spatial3d.geom.Plane belowPlane
        start local 6 // double thePointX
        start local 8 // double thePointY
        start local 10 // double thePointZ
         0: .line 1198
            aload 0 /* this */
            aload 1
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.this$0:Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon;
         1: .line 1196
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         2: .line 1192
            aload 0 /* this */
            iconst_0
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.onEdge:Z
         3: .line 1193
            aload 0 /* this */
            iconst_0
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.aboveCrossingCount:I
         4: .line 1194
            aload 0 /* this */
            iconst_0
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.belowCrossingCount:I
         5: .line 1199
            getstatic org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.$assertionsDisabled:Z
            ifne 6
            aload 3 /* plane */
            dload 6 /* thePointX */
            dload 8 /* thePointY */
            dload 10 /* thePointZ */
            invokevirtual org.apache.lucene.spatial3d.geom.Plane.evaluateIsZero:(DDD)Z
            ifne 6
            new java.lang.AssertionError
            dup
            ldc "Check point is not on travel plane"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 1200
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator org.apache.lucene.spatial3d.geom.GeoComplexPolygon org.apache.lucene.spatial3d.geom.GeoPoint org.apache.lucene.spatial3d.geom.Plane org.apache.lucene.spatial3d.geom.Plane org.apache.lucene.spatial3d.geom.Plane double double double
      StackMap stack:
            getstatic org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.$assertionsDisabled:Z
            ifne 7
            aload 3 /* plane */
            aload 2 /* testPoint */
            invokevirtual org.apache.lucene.spatial3d.geom.Plane.evaluateIsZero:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifne 7
            new java.lang.AssertionError
            dup
            ldc "Test point is not on travel plane"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 1201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* testPoint */
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.testPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
         8: .line 1202
            aload 0 /* this */
            aload 3 /* plane */
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.plane:Lorg/apache/lucene/spatial3d/geom/Plane;
         9: .line 1203
            aload 0 /* this */
            aload 4 /* abovePlane */
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.abovePlane:Lorg/apache/lucene/spatial3d/geom/Plane;
        10: .line 1204
            aload 0 /* this */
            aload 5 /* belowPlane */
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.belowPlane:Lorg/apache/lucene/spatial3d/geom/Plane;
        11: .line 1207
            new org.apache.lucene.spatial3d.geom.SidedPlane
            dup
            dload 6 /* thePointX */
            dload 8 /* thePointY */
            dload 10 /* thePointZ */
            aload 3 /* plane */
            aload 2 /* testPoint */
            invokespecial org.apache.lucene.spatial3d.geom.SidedPlane.<init>:(DDDLorg/apache/lucene/spatial3d/geom/Vector;Lorg/apache/lucene/spatial3d/geom/Vector;)V
            astore 12 /* bound1Plane */
        start local 12 // org.apache.lucene.spatial3d.geom.SidedPlane bound1Plane
        12: .line 1208
            new org.apache.lucene.spatial3d.geom.SidedPlane
            dup
            aload 2 /* testPoint */
            aload 3 /* plane */
            dload 6 /* thePointX */
            dload 8 /* thePointY */
            dload 10 /* thePointZ */
            invokespecial org.apache.lucene.spatial3d.geom.SidedPlane.<init>:(Lorg/apache/lucene/spatial3d/geom/Vector;Lorg/apache/lucene/spatial3d/geom/Vector;DDD)V
            astore 13 /* bound2Plane */
        start local 13 // org.apache.lucene.spatial3d.geom.SidedPlane bound2Plane
        13: .line 1209
            aload 12 /* bound1Plane */
            aload 13 /* bound2Plane */
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.isNumericallyIdentical:(Lorg/apache/lucene/spatial3d/geom/Plane;)Z
            ifeq 15
        14: .line 1210
            new java.lang.IllegalArgumentException
            dup
            ldc "Sector iterator unreliable when bounds planes are numerically identical"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1212
      StackMap locals: org.apache.lucene.spatial3d.geom.SidedPlane org.apache.lucene.spatial3d.geom.SidedPlane
      StackMap stack:
            aload 0 /* this */
            aload 12 /* bound1Plane */
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.bound1:Lorg/apache/lucene/spatial3d/geom/Membership;
        16: .line 1213
            aload 0 /* this */
            aload 13 /* bound2Plane */
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.bound2:Lorg/apache/lucene/spatial3d/geom/Membership;
        17: .line 1214
            aload 0 /* this */
            dload 6 /* thePointX */
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.thePointX:D
        18: .line 1215
            aload 0 /* this */
            dload 8 /* thePointY */
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.thePointY:D
        19: .line 1216
            aload 0 /* this */
            dload 10 /* thePointZ */
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.thePointZ:D
        20: .line 1219
            return
        end local 13 // org.apache.lucene.spatial3d.geom.SidedPlane bound2Plane
        end local 12 // org.apache.lucene.spatial3d.geom.SidedPlane bound1Plane
        end local 10 // double thePointZ
        end local 8 // double thePointY
        end local 6 // double thePointX
        end local 5 // org.apache.lucene.spatial3d.geom.Plane belowPlane
        end local 4 // org.apache.lucene.spatial3d.geom.Plane abovePlane
        end local 3 // org.apache.lucene.spatial3d.geom.Plane plane
        end local 2 // org.apache.lucene.spatial3d.geom.GeoPoint testPoint
        end local 0 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   21     0         this  Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon$SectorLinearCrossingEdgeIterator;
            0   21     2    testPoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            0   21     3        plane  Lorg/apache/lucene/spatial3d/geom/Plane;
            0   21     4   abovePlane  Lorg/apache/lucene/spatial3d/geom/Plane;
            0   21     5   belowPlane  Lorg/apache/lucene/spatial3d/geom/Plane;
            0   21     6    thePointX  D
            0   21     8    thePointY  D
            0   21    10    thePointZ  D
           12   21    12  bound1Plane  Lorg/apache/lucene/spatial3d/geom/SidedPlane;
           13   21    13  bound2Plane  Lorg/apache/lucene/spatial3d/geom/SidedPlane;
    MethodParameters:
            Name  Flags
      this$0      final
      testPoint   final
      plane       final
      abovePlane  final
      belowPlane  final
      thePointX   final
      thePointY   final
      thePointZ   final

  public int getCrossingCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator this
         0: .line 1223
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.aboveCrossingCount:I
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.belowCrossingCount:I
            invokestatic java.lang.Math.min:(II)I
            ireturn
        end local 0 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon$SectorLinearCrossingEdgeIterator;

  public boolean isOnEdge();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator this
         0: .line 1228
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.onEdge:Z
            ireturn
        end local 0 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon$SectorLinearCrossingEdgeIterator;

  public boolean matches(org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon$Edge;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator this
        start local 1 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge edge
         0: .line 1235
            aload 1 /* edge */
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.thePointX:D
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.thePointY:D
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.thePointZ:D
            invokevirtual org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge.isWithin:(DDD)Z
            ifeq 3
         1: .line 1238
            aload 0 /* this */
            iconst_1
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.onEdge:Z
         2: .line 1239
            iconst_0
            ireturn
         3: .line 1246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.plane:Lorg/apache/lucene/spatial3d/geom/Plane;
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.this$0:Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon;
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon.planetModel:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            aload 1 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge.plane:Lorg/apache/lucene/spatial3d/geom/Plane;
            iconst_4
            anewarray org.apache.lucene.spatial3d.geom.Membership
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.bound1:Lorg/apache/lucene/spatial3d/geom/Membership;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.bound2:Lorg/apache/lucene/spatial3d/geom/Membership;
            aastore
            dup
            iconst_2
            aload 1 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge.startPlane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            aastore
            dup
            iconst_3
            aload 1 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge.endPlane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            aastore
            invokevirtual org.apache.lucene.spatial3d.geom.Plane.findIntersections:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Lorg/apache/lucene/spatial3d/geom/Plane;[Lorg/apache/lucene/spatial3d/geom/Membership;)[Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            astore 2 /* planeCrossings */
        start local 2 // org.apache.lucene.spatial3d.geom.GeoPoint[] planeCrossings
         4: .line 1247
            aload 2 /* planeCrossings */
            ifnull 8
         5: .line 1249
            aload 2 /* planeCrossings */
            arraylength
            ifne 8
         6: .line 1270
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.plane:Lorg/apache/lucene/spatial3d/geom/Plane;
            aload 1 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokevirtual org.apache.lucene.spatial3d.geom.Plane.evaluateIsZero:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifne 8
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.plane:Lorg/apache/lucene/spatial3d/geom/Plane;
            aload 1 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokevirtual org.apache.lucene.spatial3d.geom.Plane.evaluateIsZero:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifne 8
         7: .line 1273
            iconst_1
            ireturn
         8: .line 1285
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint[]
      StackMap stack:
            aload 0 /* this */
            aload 1 /* edge */
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.abovePlane:Lorg/apache/lucene/spatial3d/geom/Plane;
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.bound1:Lorg/apache/lucene/spatial3d/geom/Membership;
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.bound2:Lorg/apache/lucene/spatial3d/geom/Membership;
            invokevirtual org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.countCrossings:(Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon$Edge;Lorg/apache/lucene/spatial3d/geom/Plane;Lorg/apache/lucene/spatial3d/geom/Membership;Lorg/apache/lucene/spatial3d/geom/Membership;)I
            istore 3 /* aboveCrossings */
        start local 3 // int aboveCrossings
         9: .line 1286
            aload 0 /* this */
            dup
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.aboveCrossingCount:I
            iload 3 /* aboveCrossings */
            iadd
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.aboveCrossingCount:I
        10: .line 1288
            aload 0 /* this */
            aload 1 /* edge */
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.belowPlane:Lorg/apache/lucene/spatial3d/geom/Plane;
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.bound1:Lorg/apache/lucene/spatial3d/geom/Membership;
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.bound2:Lorg/apache/lucene/spatial3d/geom/Membership;
            invokevirtual org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.countCrossings:(Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon$Edge;Lorg/apache/lucene/spatial3d/geom/Plane;Lorg/apache/lucene/spatial3d/geom/Membership;Lorg/apache/lucene/spatial3d/geom/Membership;)I
            istore 4 /* belowCrossings */
        start local 4 // int belowCrossings
        11: .line 1289
            aload 0 /* this */
            dup
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.belowCrossingCount:I
            iload 4 /* belowCrossings */
            iadd
            putfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.belowCrossingCount:I
        12: .line 1292
            iconst_1
            ireturn
        end local 4 // int belowCrossings
        end local 3 // int aboveCrossings
        end local 2 // org.apache.lucene.spatial3d.geom.GeoPoint[] planeCrossings
        end local 1 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge edge
        end local 0 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon$SectorLinearCrossingEdgeIterator;
            0   13     1            edge  Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon$Edge;
            4   13     2  planeCrossings  [Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            9   13     3  aboveCrossings  I
           11   13     4  belowCrossings  I
    MethodParameters:
      Name  Flags
      edge  final

  private int countCrossings(org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge, org.apache.lucene.spatial3d.geom.Plane, org.apache.lucene.spatial3d.geom.Membership, org.apache.lucene.spatial3d.geom.Membership);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon$Edge;Lorg/apache/lucene/spatial3d/geom/Plane;Lorg/apache/lucene/spatial3d/geom/Membership;Lorg/apache/lucene/spatial3d/geom/Membership;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator this
        start local 1 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge edge
        start local 2 // org.apache.lucene.spatial3d.geom.Plane envelopePlane
        start local 3 // org.apache.lucene.spatial3d.geom.Membership envelopeBound1
        start local 4 // org.apache.lucene.spatial3d.geom.Membership envelopeBound2
         0: .line 1300
            aload 1 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge.plane:Lorg/apache/lucene/spatial3d/geom/Plane;
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.this$0:Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon;
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon.planetModel:Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            aload 2 /* envelopePlane */
            iconst_2
            anewarray org.apache.lucene.spatial3d.geom.Membership
            dup
            iconst_0
            aload 3 /* envelopeBound1 */
            aastore
            dup
            iconst_1
            aload 4 /* envelopeBound2 */
            aastore
            invokevirtual org.apache.lucene.spatial3d.geom.Plane.findIntersections:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Lorg/apache/lucene/spatial3d/geom/Plane;[Lorg/apache/lucene/spatial3d/geom/Membership;)[Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            astore 5 /* intersections */
        start local 5 // org.apache.lucene.spatial3d.geom.GeoPoint[] intersections
         1: .line 1301
            iconst_0
            istore 6 /* crossings */
        start local 6 // int crossings
         2: .line 1302
            aload 5 /* intersections */
            ifnull 12
         3: .line 1303
            aload 5 /* intersections */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 11
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge org.apache.lucene.spatial3d.geom.Plane org.apache.lucene.spatial3d.geom.Membership org.apache.lucene.spatial3d.geom.Membership org.apache.lucene.spatial3d.geom.GeoPoint[] int top int int org.apache.lucene.spatial3d.geom.GeoPoint[]
      StackMap stack:
         4: aload 10
            iload 8
            aaload
            astore 7 /* intersection */
        start local 7 // org.apache.lucene.spatial3d.geom.GeoPoint intersection
         5: .line 1304
            aload 1 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge.startPlane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            aload 7 /* intersection */
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.strictlyWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifeq 10
            aload 1 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge.endPlane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            aload 7 /* intersection */
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.strictlyWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifeq 10
         6: .line 1307
            aload 0 /* this */
            aload 1 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge.plane:Lorg/apache/lucene/spatial3d/geom/Plane;
            aload 7 /* intersection */
            aload 2 /* envelopePlane */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.edgeCrossesEnvelope:(Lorg/apache/lucene/spatial3d/geom/Plane;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/Plane;)Z
            ifeq 7
            iconst_1
            goto 8
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge org.apache.lucene.spatial3d.geom.Plane org.apache.lucene.spatial3d.geom.Membership org.apache.lucene.spatial3d.geom.Membership org.apache.lucene.spatial3d.geom.GeoPoint[] int org.apache.lucene.spatial3d.geom.GeoPoint int int org.apache.lucene.spatial3d.geom.GeoPoint[]
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 11 /* counter */
        start local 11 // int counter
         9: .line 1309
            iload 6 /* crossings */
            iload 11 /* counter */
            iadd
            istore 6 /* crossings */
        end local 11 // int counter
        end local 7 // org.apache.lucene.spatial3d.geom.GeoPoint intersection
        10: .line 1303
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge org.apache.lucene.spatial3d.geom.Plane org.apache.lucene.spatial3d.geom.Membership org.apache.lucene.spatial3d.geom.Membership org.apache.lucene.spatial3d.geom.GeoPoint[] int top int int org.apache.lucene.spatial3d.geom.GeoPoint[]
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        11: iload 8
            iload 9
            if_icmplt 4
        12: .line 1315
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge org.apache.lucene.spatial3d.geom.Plane org.apache.lucene.spatial3d.geom.Membership org.apache.lucene.spatial3d.geom.Membership org.apache.lucene.spatial3d.geom.GeoPoint[] int
      StackMap stack:
            iload 6 /* crossings */
            ireturn
        end local 6 // int crossings
        end local 5 // org.apache.lucene.spatial3d.geom.GeoPoint[] intersections
        end local 4 // org.apache.lucene.spatial3d.geom.Membership envelopeBound2
        end local 3 // org.apache.lucene.spatial3d.geom.Membership envelopeBound1
        end local 2 // org.apache.lucene.spatial3d.geom.Plane envelopePlane
        end local 1 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge edge
        end local 0 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon$SectorLinearCrossingEdgeIterator;
            0   13     1            edge  Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon$Edge;
            0   13     2   envelopePlane  Lorg/apache/lucene/spatial3d/geom/Plane;
            0   13     3  envelopeBound1  Lorg/apache/lucene/spatial3d/geom/Membership;
            0   13     4  envelopeBound2  Lorg/apache/lucene/spatial3d/geom/Membership;
            1   13     5   intersections  [Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            2   13     6       crossings  I
            5   10     7    intersection  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            9   10    11         counter  I
    MethodParameters:
                Name  Flags
      edge            final
      envelopePlane   final
      envelopeBound1  final
      envelopeBound2  final

  private boolean edgeCrossesEnvelope(org.apache.lucene.spatial3d.geom.Plane, org.apache.lucene.spatial3d.geom.GeoPoint, org.apache.lucene.spatial3d.geom.Plane);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/Plane;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/Plane;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator this
        start local 1 // org.apache.lucene.spatial3d.geom.Plane edgePlane
        start local 2 // org.apache.lucene.spatial3d.geom.GeoPoint intersectionPoint
        start local 3 // org.apache.lucene.spatial3d.geom.Plane envelopePlane
         0: .line 1319
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.this$0:Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon;
            aload 1 /* edgePlane */
            aload 2 /* intersectionPoint */
            aload 3 /* envelopePlane */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoComplexPolygon.findAdjoiningPoints:(Lorg/apache/lucene/spatial3d/geom/Plane;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/Plane;)[Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            astore 4 /* adjoiningPoints */
        start local 4 // org.apache.lucene.spatial3d.geom.GeoPoint[] adjoiningPoints
         1: .line 1320
            aload 4 /* adjoiningPoints */
            ifnonnull 3
         2: .line 1322
            iconst_1
            ireturn
         3: .line 1324
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint[]
      StackMap stack:
            iconst_0
            istore 5 /* withinCount */
        start local 5 // int withinCount
         4: .line 1325
            aload 4 /* adjoiningPoints */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 9
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator org.apache.lucene.spatial3d.geom.Plane org.apache.lucene.spatial3d.geom.GeoPoint org.apache.lucene.spatial3d.geom.Plane org.apache.lucene.spatial3d.geom.GeoPoint[] int top int int org.apache.lucene.spatial3d.geom.GeoPoint[]
      StackMap stack:
         5: aload 9
            iload 7
            aaload
            astore 6 /* adjoining */
        start local 6 // org.apache.lucene.spatial3d.geom.GeoPoint adjoining
         6: .line 1327
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.plane:Lorg/apache/lucene/spatial3d/geom/Plane;
            aload 6 /* adjoining */
            invokevirtual org.apache.lucene.spatial3d.geom.Plane.evaluateIsZero:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifeq 8
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.bound1:Lorg/apache/lucene/spatial3d/geom/Membership;
            aload 6 /* adjoining */
            invokeinterface org.apache.lucene.spatial3d.geom.Membership.isWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifeq 8
            aload 0 /* this */
            getfield org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator.bound2:Lorg/apache/lucene/spatial3d/geom/Membership;
            aload 6 /* adjoining */
            invokeinterface org.apache.lucene.spatial3d.geom.Membership.isWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifeq 8
         7: .line 1329
            iinc 5 /* withinCount */ 1
        end local 6 // org.apache.lucene.spatial3d.geom.GeoPoint adjoining
         8: .line 1325
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
         9: iload 7
            iload 8
            if_icmplt 5
        10: .line 1334
            iload 5 /* withinCount */
            iconst_1
            iand
            ifeq 11
            iconst_1
            ireturn
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator org.apache.lucene.spatial3d.geom.Plane org.apache.lucene.spatial3d.geom.GeoPoint org.apache.lucene.spatial3d.geom.Plane org.apache.lucene.spatial3d.geom.GeoPoint[] int
      StackMap stack:
        11: iconst_0
            ireturn
        end local 5 // int withinCount
        end local 4 // org.apache.lucene.spatial3d.geom.GeoPoint[] adjoiningPoints
        end local 3 // org.apache.lucene.spatial3d.geom.Plane envelopePlane
        end local 2 // org.apache.lucene.spatial3d.geom.GeoPoint intersectionPoint
        end local 1 // org.apache.lucene.spatial3d.geom.Plane edgePlane
        end local 0 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0               this  Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon$SectorLinearCrossingEdgeIterator;
            0   12     1          edgePlane  Lorg/apache/lucene/spatial3d/geom/Plane;
            0   12     2  intersectionPoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            0   12     3      envelopePlane  Lorg/apache/lucene/spatial3d/geom/Plane;
            1   12     4    adjoiningPoints  [Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            4   12     5        withinCount  I
            6    8     6          adjoining  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
    MethodParameters:
                   Name  Flags
      edgePlane          final
      intersectionPoint  final
      envelopePlane      final
}
SourceFile: "GeoComplexPolygon.java"
NestHost: org.apache.lucene.spatial3d.geom.GeoComplexPolygon
InnerClasses:
  private abstract CountingEdgeIterator = org.apache.lucene.spatial3d.geom.GeoComplexPolygon$CountingEdgeIterator of org.apache.lucene.spatial3d.geom.GeoComplexPolygon
  private Edge = org.apache.lucene.spatial3d.geom.GeoComplexPolygon$Edge of org.apache.lucene.spatial3d.geom.GeoComplexPolygon
  private SectorLinearCrossingEdgeIterator = org.apache.lucene.spatial3d.geom.GeoComplexPolygon$SectorLinearCrossingEdgeIterator of org.apache.lucene.spatial3d.geom.GeoComplexPolygon