test_class.declarator: vd
test_class.modifier: private static
test_class.original_string: private static VisualDebugger vd;
test_class.type: VisualDebugger
test_class.var_name: vd
test_class.file: kendzi-straight-skeleton/src/test/java/kendzi/math/geometry/skeleton/SkeletonTest.java
test_class.identifier: SkeletonTest
test_case.body: @Test
      public void skeletonTest7() {
  
          vd.clear();
  
          List<Point2d> polygon = new ArrayList<Point2d>();
  
          polygon.add(new Point2d(0, 0));
          polygon.add(new Point2d(0, -1));
          polygon.add(new Point2d(1, -1));
          polygon.add(new Point2d(1, 1));
          polygon.add(new Point2d(-1, 1));
  
          List<Point2d> expected = new ArrayList<Point2d>();
          expected.add(p(0.414214, 0.414214));
          expected.add(p(0.500000, -0.500000));
          expected.add(p(0.500000, 0.207107));
          expected.addAll(polygon);
  
          vd.debug(polygon);
  
          SkeletonOutput sk = Skeleton.skeleton(polygon);
  
          validate(polygon, sk);
  
          visualizeResults(polygon, sk);
  
          assertExpectedPoints(expected, getFacePoints(sk));
      }
test_case.class_method_signature: SkeletonTest.skeletonTest7()
test_case.full_signature: @Test public void skeletonTest7()
test_case.identifier: skeletonTest7
test_case.invocations: clear add add add add add add p add p add p addAll debug skeleton validate visualizeResults assertExpectedPoints getFacePoints
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void skeletonTest7()
focal_class.declarator: log = Logger.getLogger(Skeleton.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = Logger.getLogger(Skeleton.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: SPLIT_EPSILON = 1E-10
focal_class.modifier: private static final
focal_class.original_string: private static final double SPLIT_EPSILON = 1E-10;
focal_class.type: double
focal_class.var_name: SPLIT_EPSILON
focal_class.declarator: vd = new EmptyDebugger()
focal_class.modifier: private static
focal_class.original_string: private static VisualDebugger vd = new EmptyDebugger();
focal_class.type: VisualDebugger
focal_class.var_name: vd
focal_class.declarator: debug = true
focal_class.modifier: private static
focal_class.original_string: private static boolean debug = true;
focal_class.type: boolean
focal_class.var_name: debug
focal_class.file: kendzi-straight-skeleton/src/main/java/kendzi/math/geometry/skeleton/Skeleton.java
focal_class.identifier: Skeleton
focal_class.class_method_signature: Skeleton.initVisualDebugger()
focal_class.full_signature: public static VisualDebugger initVisualDebugger()
focal_class.identifier: initVisualDebugger
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: VisualDebugger
focal_class.signature: VisualDebugger initVisualDebugger()
focal_class.class_method_signature: Skeleton.skeleton(List<Point2d> polygon)
focal_class.full_signature: public static SkeletonOutput skeleton(List<Point2d> polygon)
focal_class.identifier: skeleton
focal_class.modifiers: public static
focal_class.parameters: (List<Point2d> polygon)
focal_class.return: SkeletonOutput
focal_class.signature: SkeletonOutput skeleton(List<Point2d> polygon)
focal_class.class_method_signature: Skeleton.skeleton(List<Point2d> polygon, List<List<Point2d>> holes)
focal_class.full_signature: public static SkeletonOutput skeleton(List<Point2d> polygon, List<List<Point2d>> holes)
focal_class.identifier: skeleton
focal_class.modifiers: public static
focal_class.parameters: (List<Point2d> polygon, List<List<Point2d>> holes)
focal_class.return: SkeletonOutput
focal_class.signature: SkeletonOutput skeleton(List<Point2d> polygon, List<List<Point2d>> holes)
focal_class.class_method_signature: Skeleton.skeleton(List<Point2d> polygon, List<List<Point2d>> holes,
              SkeletonConfiguration skeletonConfiguration)
focal_class.full_signature: public static SkeletonOutput skeleton(List<Point2d> polygon, List<List<Point2d>> holes,
              SkeletonConfiguration skeletonConfiguration)
focal_class.identifier: skeleton
focal_class.modifiers: public static
focal_class.parameters: (List<Point2d> polygon, List<List<Point2d>> holes,
              SkeletonConfiguration skeletonConfiguration)
focal_class.return: SkeletonOutput
focal_class.signature: SkeletonOutput skeleton(List<Point2d> polygon, List<List<Point2d>> holes,
              SkeletonConfiguration skeletonConfiguration)
focal_class.class_method_signature: Skeleton.initHoles(List<List<Point2d>> holes, SkeletonConfiguration skeletonConfiguration)
focal_class.full_signature: private static List<List<Point2d>> initHoles(List<List<Point2d>> holes, SkeletonConfiguration skeletonConfiguration)
focal_class.identifier: initHoles
focal_class.modifiers: private static
focal_class.parameters: (List<List<Point2d>> holes, SkeletonConfiguration skeletonConfiguration)
focal_class.return: List<List<Point2d>>
focal_class.signature: List<List<Point2d>> initHoles(List<List<Point2d>> holes, SkeletonConfiguration skeletonConfiguration)
focal_class.class_method_signature: Skeleton.initPolygon(List<Point2d> polygon, SkeletonConfiguration skeletonConfiguration)
focal_class.full_signature: private static List<Point2d> initPolygon(List<Point2d> polygon, SkeletonConfiguration skeletonConfiguration)
focal_class.identifier: initPolygon
focal_class.modifiers: private static
focal_class.parameters: (List<Point2d> polygon, SkeletonConfiguration skeletonConfiguration)
focal_class.return: List<Point2d>
focal_class.signature: List<Point2d> initPolygon(List<Point2d> polygon, SkeletonConfiguration skeletonConfiguration)
focal_class.class_method_signature: Skeleton.debugInit(List<Point2d> polygon, List<List<Point2d>> holes, Set<CircularList<Vertex>> sLav,
              PriorityQueue<SkeletonEvent> queue)
focal_class.full_signature: private static void debugInit(List<Point2d> polygon, List<List<Point2d>> holes, Set<CircularList<Vertex>> sLav,
              PriorityQueue<SkeletonEvent> queue)
focal_class.identifier: debugInit
focal_class.modifiers: private static
focal_class.parameters: (List<Point2d> polygon, List<List<Point2d>> holes, Set<CircularList<Vertex>> sLav,
              PriorityQueue<SkeletonEvent> queue)
focal_class.return: void
focal_class.signature: void debugInit(List<Point2d> polygon, List<List<Point2d>> holes, Set<CircularList<Vertex>> sLav,
              PriorityQueue<SkeletonEvent> queue)
focal_class.class_method_signature: Skeleton.processTwoNodeLavs(Set<CircularList<Vertex>> sLav)
focal_class.full_signature: private static void processTwoNodeLavs(Set<CircularList<Vertex>> sLav)
focal_class.identifier: processTwoNodeLavs
focal_class.modifiers: private static
focal_class.parameters: (Set<CircularList<Vertex>> sLav)
focal_class.return: void
focal_class.signature: void processTwoNodeLavs(Set<CircularList<Vertex>> sLav)
focal_class.class_method_signature: Skeleton.removeEmptyLav(Set<CircularList<Vertex>> sLav)
focal_class.full_signature: private static void removeEmptyLav(Set<CircularList<Vertex>> sLav)
focal_class.identifier: removeEmptyLav
focal_class.modifiers: private static
focal_class.parameters: (Set<CircularList<Vertex>> sLav)
focal_class.return: void
focal_class.signature: void removeEmptyLav(Set<CircularList<Vertex>> sLav)
focal_class.class_method_signature: Skeleton.multiEdgeEvent(MultiEdgeEvent event, Set<CircularList<Vertex>> sLav, PriorityQueue<SkeletonEvent> queue,
              List<Edge> edges)
focal_class.full_signature: private static void multiEdgeEvent(MultiEdgeEvent event, Set<CircularList<Vertex>> sLav, PriorityQueue<SkeletonEvent> queue,
              List<Edge> edges)
focal_class.identifier: multiEdgeEvent
focal_class.modifiers: private static
focal_class.parameters: (MultiEdgeEvent event, Set<CircularList<Vertex>> sLav, PriorityQueue<SkeletonEvent> queue,
              List<Edge> edges)
focal_class.return: void
focal_class.signature: void multiEdgeEvent(MultiEdgeEvent event, Set<CircularList<Vertex>> sLav, PriorityQueue<SkeletonEvent> queue,
              List<Edge> edges)
focal_class.class_method_signature: Skeleton.addMultiBackFaces(List<EdgeEvent> edgeList, Vertex edgeVertex)
focal_class.full_signature: private static void addMultiBackFaces(List<EdgeEvent> edgeList, Vertex edgeVertex)
focal_class.identifier: addMultiBackFaces
focal_class.modifiers: private static
focal_class.parameters: (List<EdgeEvent> edgeList, Vertex edgeVertex)
focal_class.return: void
focal_class.signature: void addMultiBackFaces(List<EdgeEvent> edgeList, Vertex edgeVertex)
focal_class.class_method_signature: Skeleton.pickEvent(PickEvent event, Set<CircularList<Vertex>> sLav, PriorityQueue<SkeletonEvent> queue,
              List<Edge> edges)
focal_class.full_signature: private static void pickEvent(PickEvent event, Set<CircularList<Vertex>> sLav, PriorityQueue<SkeletonEvent> queue,
              List<Edge> edges)
focal_class.identifier: pickEvent
focal_class.modifiers: private static
focal_class.parameters: (PickEvent event, Set<CircularList<Vertex>> sLav, PriorityQueue<SkeletonEvent> queue,
              List<Edge> edges)
focal_class.return: void
focal_class.signature: void pickEvent(PickEvent event, Set<CircularList<Vertex>> sLav, PriorityQueue<SkeletonEvent> queue,
              List<Edge> edges)
focal_class.class_method_signature: Skeleton.multiSplitEvent(MultiSplitEvent event, Set<CircularList<Vertex>> sLav,
              PriorityQueue<SkeletonEvent> queue, List<Edge> edges)
focal_class.full_signature: private static void multiSplitEvent(MultiSplitEvent event, Set<CircularList<Vertex>> sLav,
              PriorityQueue<SkeletonEvent> queue, List<Edge> edges)
focal_class.identifier: multiSplitEvent
focal_class.modifiers: private static
focal_class.parameters: (MultiSplitEvent event, Set<CircularList<Vertex>> sLav,
              PriorityQueue<SkeletonEvent> queue, List<Edge> edges)
focal_class.return: void
focal_class.signature: void multiSplitEvent(MultiSplitEvent event, Set<CircularList<Vertex>> sLav,
              PriorityQueue<SkeletonEvent> queue, List<Edge> edges)
focal_class.class_method_signature: Skeleton.correctBisectorDirection(Ray2d bisector, Vertex beginNextVertex, Vertex endPreviousVertex,
              Edge beginEdge, Edge endEdge)
focal_class.full_signature: private static void correctBisectorDirection(Ray2d bisector, Vertex beginNextVertex, Vertex endPreviousVertex,
              Edge beginEdge, Edge endEdge)
focal_class.identifier: correctBisectorDirection
focal_class.modifiers: private static
focal_class.parameters: (Ray2d bisector, Vertex beginNextVertex, Vertex endPreviousVertex,
              Edge beginEdge, Edge endEdge)
focal_class.return: void
focal_class.signature: void correctBisectorDirection(Ray2d bisector, Vertex beginNextVertex, Vertex endPreviousVertex,
              Edge beginEdge, Edge endEdge)
focal_class.class_method_signature: Skeleton.validateLavsEdges(Set<CircularList<Vertex>> sLav)
focal_class.full_signature: private static void validateLavsEdges(Set<CircularList<Vertex>> sLav)
focal_class.identifier: validateLavsEdges
focal_class.modifiers: private static
focal_class.parameters: (Set<CircularList<Vertex>> sLav)
focal_class.return: void
focal_class.signature: void validateLavsEdges(Set<CircularList<Vertex>> sLav)
focal_class.class_method_signature: Skeleton.addSplitFaces(FaceNode lastFaceNode, ChainEnds chainBegin, ChainEnds chainEnd, Vertex newVertex)
focal_class.full_signature: private static FaceNode addSplitFaces(FaceNode lastFaceNode, ChainEnds chainBegin, ChainEnds chainEnd, Vertex newVertex)
focal_class.identifier: addSplitFaces
focal_class.modifiers: private static
focal_class.parameters: (FaceNode lastFaceNode, ChainEnds chainBegin, ChainEnds chainEnd, Vertex newVertex)
focal_class.return: FaceNode
focal_class.signature: FaceNode addSplitFaces(FaceNode lastFaceNode, ChainEnds chainBegin, ChainEnds chainEnd, Vertex newVertex)
focal_class.class_method_signature: Skeleton.createOppositeEdgeVertex(Vertex newVertex)
focal_class.full_signature: private static Vertex createOppositeEdgeVertex(Vertex newVertex)
focal_class.identifier: createOppositeEdgeVertex
focal_class.modifiers: private static
focal_class.parameters: (Vertex newVertex)
focal_class.return: Vertex
focal_class.signature: Vertex createOppositeEdgeVertex(Vertex newVertex)
focal_class.class_method_signature: Skeleton.createOppositeEdgeChains(Set<CircularList<Vertex>> sLav, List<Chain> chains, Point2d center)
focal_class.full_signature: private static void createOppositeEdgeChains(Set<CircularList<Vertex>> sLav, List<Chain> chains, Point2d center)
focal_class.identifier: createOppositeEdgeChains
focal_class.modifiers: private static
focal_class.parameters: (Set<CircularList<Vertex>> sLav, List<Chain> chains, Point2d center)
focal_class.return: void
focal_class.signature: void createOppositeEdgeChains(Set<CircularList<Vertex>> sLav, List<Chain> chains, Point2d center)
focal_class.class_method_signature: Skeleton.createMultiSplitVertex(Edge nextEdge, Edge previousEdge, Point2d center, double distance)
focal_class.full_signature: private static Vertex createMultiSplitVertex(Edge nextEdge, Edge previousEdge, Point2d center, double distance)
focal_class.identifier: createMultiSplitVertex
focal_class.modifiers: private static
focal_class.parameters: (Edge nextEdge, Edge previousEdge, Point2d center, double distance)
focal_class.return: Vertex
focal_class.signature: Vertex createMultiSplitVertex(Edge nextEdge, Edge previousEdge, Point2d center, double distance)
focal_class.class_method_signature: Skeleton.createChains(List<SkeletonEvent> cluster)
focal_class.full_signature: private static List<Chain> createChains(List<SkeletonEvent> cluster)
focal_class.identifier: createChains
focal_class.modifiers: private static
focal_class.parameters: (List<SkeletonEvent> cluster)
focal_class.return: List<Chain>
focal_class.signature: List<Chain> createChains(List<SkeletonEvent> cluster)
focal_class.class_method_signature: Skeleton.isInEdgeChain(SplitEvent split, EdgeChain chain)
focal_class.full_signature: private static boolean isInEdgeChain(SplitEvent split, EdgeChain chain)
focal_class.identifier: isInEdgeChain
focal_class.modifiers: private static
focal_class.parameters: (SplitEvent split, EdgeChain chain)
focal_class.return: boolean
focal_class.signature: boolean isInEdgeChain(SplitEvent split, EdgeChain chain)
focal_class.class_method_signature: Skeleton.createEdgeChain(List<EdgeEvent> edgeCluster)
focal_class.full_signature: protected static ArrayList<EdgeEvent> createEdgeChain(List<EdgeEvent> edgeCluster)
focal_class.identifier: createEdgeChain
focal_class.modifiers: protected static
focal_class.parameters: (List<EdgeEvent> edgeCluster)
focal_class.return: ArrayList<EdgeEvent>
focal_class.signature: ArrayList<EdgeEvent> createEdgeChain(List<EdgeEvent> edgeCluster)
focal_class.class_method_signature: Skeleton.removeEventsUnderHeight(PriorityQueue<SkeletonEvent> queue, double levelHeight)
focal_class.full_signature: private static void removeEventsUnderHeight(PriorityQueue<SkeletonEvent> queue, double levelHeight)
focal_class.identifier: removeEventsUnderHeight
focal_class.modifiers: private static
focal_class.parameters: (PriorityQueue<SkeletonEvent> queue, double levelHeight)
focal_class.return: void
focal_class.signature: void removeEventsUnderHeight(PriorityQueue<SkeletonEvent> queue, double levelHeight)
focal_class.class_method_signature: Skeleton.loadAndGroupLevelEvents(PriorityQueue<SkeletonEvent> queue)
focal_class.full_signature: private static List<SkeletonEvent> loadAndGroupLevelEvents(PriorityQueue<SkeletonEvent> queue)
focal_class.identifier: loadAndGroupLevelEvents
focal_class.modifiers: private static
focal_class.parameters: (PriorityQueue<SkeletonEvent> queue)
focal_class.return: List<SkeletonEvent>
focal_class.signature: List<SkeletonEvent> loadAndGroupLevelEvents(PriorityQueue<SkeletonEvent> queue)
focal_class.class_method_signature: Skeleton.groupLevelEvents(List<SkeletonEvent> levelEvents)
focal_class.full_signature: protected static List<SkeletonEvent> groupLevelEvents(List<SkeletonEvent> levelEvents)
focal_class.identifier: groupLevelEvents
focal_class.modifiers: protected static
focal_class.parameters: (List<SkeletonEvent> levelEvents)
focal_class.return: List<SkeletonEvent>
focal_class.signature: List<SkeletonEvent> groupLevelEvents(List<SkeletonEvent> levelEvents)
focal_class.class_method_signature: Skeleton.isEventInGroup(Set<Vertex> parentGroup, SkeletonEvent event)
focal_class.full_signature: private static boolean isEventInGroup(Set<Vertex> parentGroup, SkeletonEvent event)
focal_class.identifier: isEventInGroup
focal_class.modifiers: private static
focal_class.parameters: (Set<Vertex> parentGroup, SkeletonEvent event)
focal_class.return: boolean
focal_class.signature: boolean isEventInGroup(Set<Vertex> parentGroup, SkeletonEvent event)
focal_class.class_method_signature: Skeleton.addEventToGroup(Set<Vertex> parentGroup, SkeletonEvent event)
focal_class.full_signature: private static void addEventToGroup(Set<Vertex> parentGroup, SkeletonEvent event)
focal_class.identifier: addEventToGroup
focal_class.modifiers: private static
focal_class.parameters: (Set<Vertex> parentGroup, SkeletonEvent event)
focal_class.return: void
focal_class.signature: void addEventToGroup(Set<Vertex> parentGroup, SkeletonEvent event)
focal_class.class_method_signature: Skeleton.createLevelEvent(Point2d eventCenter, double distance, List<SkeletonEvent> eventCluster)
focal_class.full_signature: private static SkeletonEvent createLevelEvent(Point2d eventCenter, double distance, List<SkeletonEvent> eventCluster)
focal_class.identifier: createLevelEvent
focal_class.modifiers: private static
focal_class.parameters: (Point2d eventCenter, double distance, List<SkeletonEvent> eventCluster)
focal_class.return: SkeletonEvent
focal_class.signature: SkeletonEvent createLevelEvent(Point2d eventCenter, double distance, List<SkeletonEvent> eventCluster)
focal_class.class_method_signature: Skeleton.near(Point2d p1, Point2d p2, double epsilon)
focal_class.full_signature: static boolean near(Point2d p1, Point2d p2, double epsilon)
focal_class.identifier: near
focal_class.modifiers: static
focal_class.parameters: (Point2d p1, Point2d p2, double epsilon)
focal_class.return: boolean
focal_class.signature: boolean near(Point2d p1, Point2d p2, double epsilon)
focal_class.class_method_signature: Skeleton.debugSteep(PriorityQueue<SkeletonEvent> queue, Set<CircularList<Vertex>> sLav, List<FaceQueue> faces)
focal_class.full_signature: private static void debugSteep(PriorityQueue<SkeletonEvent> queue, Set<CircularList<Vertex>> sLav, List<FaceQueue> faces)
focal_class.identifier: debugSteep
focal_class.modifiers: private static
focal_class.parameters: (PriorityQueue<SkeletonEvent> queue, Set<CircularList<Vertex>> sLav, List<FaceQueue> faces)
focal_class.return: void
focal_class.signature: void debugSteep(PriorityQueue<SkeletonEvent> queue, Set<CircularList<Vertex>> sLav, List<FaceQueue> faces)
focal_class.class_method_signature: Skeleton.loadLevelEvents(PriorityQueue<SkeletonEvent> queue)
focal_class.full_signature: private static List<SkeletonEvent> loadLevelEvents(PriorityQueue<SkeletonEvent> queue)
focal_class.identifier: loadLevelEvents
focal_class.modifiers: private static
focal_class.parameters: (PriorityQueue<SkeletonEvent> queue)
focal_class.return: List<SkeletonEvent>
focal_class.signature: List<SkeletonEvent> loadLevelEvents(PriorityQueue<SkeletonEvent> queue)
focal_class.class_method_signature: Skeleton.assertMaxNumberOfInteraction(int count)
focal_class.full_signature: private static int assertMaxNumberOfInteraction(int count)
focal_class.identifier: assertMaxNumberOfInteraction
focal_class.modifiers: private static
focal_class.parameters: (int count)
focal_class.return: int
focal_class.signature: int assertMaxNumberOfInteraction(int count)
focal_class.class_method_signature: Skeleton.debugNames(List<Point2d> polygon, String name)
focal_class.full_signature: private static List<Point2d> debugNames(List<Point2d> polygon, String name)
focal_class.identifier: debugNames
focal_class.modifiers: private static
focal_class.parameters: (List<Point2d> polygon, String name)
focal_class.return: List<Point2d>
focal_class.signature: List<Point2d> debugNames(List<Point2d> polygon, String name)
focal_class.class_method_signature: Skeleton.makeClockwise(List<List<Point2d>> holes)
focal_class.full_signature: private static List<List<Point2d>> makeClockwise(List<List<Point2d>> holes)
focal_class.identifier: makeClockwise
focal_class.modifiers: private static
focal_class.parameters: (List<List<Point2d>> holes)
focal_class.return: List<List<Point2d>>
focal_class.signature: List<List<Point2d>> makeClockwise(List<List<Point2d>> holes)
focal_class.class_method_signature: Skeleton.makeCounterClockwise(List<Point2d> polygon)
focal_class.full_signature: private static List<Point2d> makeCounterClockwise(List<Point2d> polygon)
focal_class.identifier: makeCounterClockwise
focal_class.modifiers: private static
focal_class.parameters: (List<Point2d> polygon)
focal_class.return: List<Point2d>
focal_class.signature: List<Point2d> makeCounterClockwise(List<Point2d> polygon)
focal_class.class_method_signature: Skeleton.initSlav(List<Point2d> polygon, Set<CircularList<Vertex>> sLav, List<Edge> edges, List<FaceQueue> faces)
focal_class.full_signature: private static void initSlav(List<Point2d> polygon, Set<CircularList<Vertex>> sLav, List<Edge> edges, List<FaceQueue> faces)
focal_class.identifier: initSlav
focal_class.modifiers: private static
focal_class.parameters: (List<Point2d> polygon, Set<CircularList<Vertex>> sLav, List<Edge> edges, List<FaceQueue> faces)
focal_class.return: void
focal_class.signature: void initSlav(List<Point2d> polygon, Set<CircularList<Vertex>> sLav, List<Edge> edges, List<FaceQueue> faces)
focal_class.class_method_signature: Skeleton.addFacesToOutput(List<FaceQueue> faces)
focal_class.full_signature: private static SkeletonOutput addFacesToOutput(List<FaceQueue> faces)
focal_class.identifier: addFacesToOutput
focal_class.modifiers: private static
focal_class.parameters: (List<FaceQueue> faces)
focal_class.return: SkeletonOutput
focal_class.signature: SkeletonOutput addFacesToOutput(List<FaceQueue> faces)
focal_class.class_method_signature: Skeleton.initEvents(Set<CircularList<Vertex>> sLav, PriorityQueue<SkeletonEvent> queue, List<Edge> edges)
focal_class.full_signature: private static void initEvents(Set<CircularList<Vertex>> sLav, PriorityQueue<SkeletonEvent> queue, List<Edge> edges)
focal_class.identifier: initEvents
focal_class.modifiers: private static
focal_class.parameters: (Set<CircularList<Vertex>> sLav, PriorityQueue<SkeletonEvent> queue, List<Edge> edges)
focal_class.return: void
focal_class.signature: void initEvents(Set<CircularList<Vertex>> sLav, PriorityQueue<SkeletonEvent> queue, List<Edge> edges)
focal_class.class_method_signature: Skeleton.computeSplitEvents(Vertex vertex, List<Edge> edges, PriorityQueue<SkeletonEvent> queue,
              Double distanceSquared)
focal_class.full_signature: private static void computeSplitEvents(Vertex vertex, List<Edge> edges, PriorityQueue<SkeletonEvent> queue,
              Double distanceSquared)
focal_class.identifier: computeSplitEvents
focal_class.modifiers: private static
focal_class.parameters: (Vertex vertex, List<Edge> edges, PriorityQueue<SkeletonEvent> queue,
              Double distanceSquared)
focal_class.return: void
focal_class.signature: void computeSplitEvents(Vertex vertex, List<Edge> edges, PriorityQueue<SkeletonEvent> queue,
              Double distanceSquared)
focal_class.class_method_signature: Skeleton.computeEvents(Vertex vertex, PriorityQueue<SkeletonEvent> queue, List<Edge> edges)
focal_class.full_signature: private static void computeEvents(Vertex vertex, PriorityQueue<SkeletonEvent> queue, List<Edge> edges)
focal_class.identifier: computeEvents
focal_class.modifiers: private static
focal_class.parameters: (Vertex vertex, PriorityQueue<SkeletonEvent> queue, List<Edge> edges)
focal_class.return: void
focal_class.signature: void computeEvents(Vertex vertex, PriorityQueue<SkeletonEvent> queue, List<Edge> edges)
focal_class.class_method_signature: Skeleton.computeCloserEdgeEvent(Vertex vertex, PriorityQueue<SkeletonEvent> queue)
focal_class.full_signature: private static Double computeCloserEdgeEvent(Vertex vertex, PriorityQueue<SkeletonEvent> queue)
focal_class.identifier: computeCloserEdgeEvent
focal_class.modifiers: private static
focal_class.parameters: (Vertex vertex, PriorityQueue<SkeletonEvent> queue)
focal_class.return: Double
focal_class.signature: Double computeCloserEdgeEvent(Vertex vertex, PriorityQueue<SkeletonEvent> queue)
focal_class.class_method_signature: Skeleton.createEdgeEvent(Point2d point, Vertex previousVertex, Vertex nextVertex)
focal_class.full_signature: private static SkeletonEvent createEdgeEvent(Point2d point, Vertex previousVertex, Vertex nextVertex)
focal_class.identifier: createEdgeEvent
focal_class.modifiers: private static
focal_class.parameters: (Point2d point, Vertex previousVertex, Vertex nextVertex)
focal_class.return: SkeletonEvent
focal_class.signature: SkeletonEvent createEdgeEvent(Point2d point, Vertex previousVertex, Vertex nextVertex)
focal_class.class_method_signature: Skeleton.computeEdgeEvents(Vertex previousVertex, Vertex nextVertex, PriorityQueue<SkeletonEvent> queue)
focal_class.full_signature: private static void computeEdgeEvents(Vertex previousVertex, Vertex nextVertex, PriorityQueue<SkeletonEvent> queue)
focal_class.identifier: computeEdgeEvents
focal_class.modifiers: private static
focal_class.parameters: (Vertex previousVertex, Vertex nextVertex, PriorityQueue<SkeletonEvent> queue)
focal_class.return: void
focal_class.signature: void computeEdgeEvents(Vertex previousVertex, Vertex nextVertex, PriorityQueue<SkeletonEvent> queue)
focal_class.class_method_signature: Skeleton.vertexOpositeEdge(Point2d point, Edge edge)
focal_class.full_signature: protected static Edge vertexOpositeEdge(Point2d point, Edge edge)
focal_class.identifier: vertexOpositeEdge
focal_class.modifiers: protected static
focal_class.parameters: (Point2d point, Edge edge)
focal_class.return: Edge
focal_class.signature: Edge vertexOpositeEdge(Point2d point, Edge edge)
focal_class.class_method_signature: Skeleton.calcOppositeEdges(Vertex vertex, List<Edge> edges)
focal_class.full_signature: private static List<SplitCandidate> calcOppositeEdges(Vertex vertex, List<Edge> edges)
focal_class.identifier: calcOppositeEdges
focal_class.modifiers: private static
focal_class.parameters: (Vertex vertex, List<Edge> edges)
focal_class.return: List<SplitCandidate>
focal_class.signature: List<SplitCandidate> calcOppositeEdges(Vertex vertex, List<Edge> edges)
focal_class.class_method_signature: Skeleton.edgeBehindBisector(Ray2d bisector, LineLinear2d edge)
focal_class.full_signature: protected static boolean edgeBehindBisector(Ray2d bisector, LineLinear2d edge)
focal_class.identifier: edgeBehindBisector
focal_class.modifiers: protected static
focal_class.parameters: (Ray2d bisector, LineLinear2d edge)
focal_class.return: boolean
focal_class.signature: boolean edgeBehindBisector(Ray2d bisector, LineLinear2d edge)
focal_class.class_method_signature: Skeleton.calcCandidatePointForSplit(Vertex vertex, Edge edge)
focal_class.full_signature: protected static SplitCandidate calcCandidatePointForSplit(Vertex vertex, Edge edge)
focal_class.identifier: calcCandidatePointForSplit
focal_class.modifiers: protected static
focal_class.parameters: (Vertex vertex, Edge edge)
focal_class.return: SplitCandidate
focal_class.signature: SplitCandidate calcCandidatePointForSplit(Vertex vertex, Edge edge)
focal_class.class_method_signature: Skeleton.choseLessParallelVertexEdge(Vertex vertex, Edge edge)
focal_class.full_signature: private static Edge choseLessParallelVertexEdge(Vertex vertex, Edge edge)
focal_class.identifier: choseLessParallelVertexEdge
focal_class.modifiers: private static
focal_class.parameters: (Vertex vertex, Edge edge)
focal_class.return: Edge
focal_class.signature: Edge choseLessParallelVertexEdge(Vertex vertex, Edge edge)
focal_class.class_method_signature: Skeleton.computeIntersectionBisectors(Vertex vertexPrevious, Vertex vertexNext)
focal_class.full_signature: private static Point2d computeIntersectionBisectors(Vertex vertexPrevious, Vertex vertexNext)
focal_class.identifier: computeIntersectionBisectors
focal_class.modifiers: private static
focal_class.parameters: (Vertex vertexPrevious, Vertex vertexNext)
focal_class.return: Point2d
focal_class.signature: Point2d computeIntersectionBisectors(Vertex vertexPrevious, Vertex vertexNext)
focal_class.class_method_signature: Skeleton.mergeLav(Vertex firstLav, Vertex secondLav)
focal_class.full_signature: protected static CircularList<Vertex> mergeLav(Vertex firstLav, Vertex secondLav)
focal_class.identifier: mergeLav
focal_class.modifiers: protected static
focal_class.parameters: (Vertex firstLav, Vertex secondLav)
focal_class.return: CircularList<Vertex>
focal_class.signature: CircularList<Vertex> mergeLav(Vertex firstLav, Vertex secondLav)
focal_class.class_method_signature: Skeleton.findOppositeEdgeLav(Set<CircularList<Vertex>> sLav, Edge oppositeEdge, Point2d center)
focal_class.full_signature: protected static Vertex findOppositeEdgeLav(Set<CircularList<Vertex>> sLav, Edge oppositeEdge, Point2d center)
focal_class.identifier: findOppositeEdgeLav
focal_class.modifiers: protected static
focal_class.parameters: (Set<CircularList<Vertex>> sLav, Edge oppositeEdge, Point2d center)
focal_class.return: Vertex
focal_class.signature: Vertex findOppositeEdgeLav(Set<CircularList<Vertex>> sLav, Edge oppositeEdge, Point2d center)
focal_class.class_method_signature: Skeleton.choseOppositeEdgeLav(List<Vertex> edgeLavs, Edge oppositeEdge, Point2d center)
focal_class.full_signature: protected static Vertex choseOppositeEdgeLav(List<Vertex> edgeLavs, Edge oppositeEdge, Point2d center)
focal_class.identifier: choseOppositeEdgeLav
focal_class.modifiers: protected static
focal_class.parameters: (List<Vertex> edgeLavs, Edge oppositeEdge, Point2d center)
focal_class.return: Vertex
focal_class.signature: Vertex choseOppositeEdgeLav(List<Vertex> edgeLavs, Edge oppositeEdge, Point2d center)
focal_class.class_method_signature: Skeleton.findEdgeLavs(Set<CircularList<Vertex>> sLav, Edge oppositeEdge, CircularList<Vertex> skippedLav)
focal_class.full_signature: private static List<Vertex> findEdgeLavs(Set<CircularList<Vertex>> sLav, Edge oppositeEdge, CircularList<Vertex> skippedLav)
focal_class.identifier: findEdgeLavs
focal_class.modifiers: private static
focal_class.parameters: (Set<CircularList<Vertex>> sLav, Edge oppositeEdge, CircularList<Vertex> skippedLav)
focal_class.return: List<Vertex>
focal_class.signature: List<Vertex> findEdgeLavs(Set<CircularList<Vertex>> sLav, Edge oppositeEdge, CircularList<Vertex> skippedLav)
focal_class.class_method_signature: Skeleton.findSplitIndex(Vertex vertex, Edge oppositeEdge)
focal_class.full_signature: protected static int findSplitIndex(Vertex vertex, Edge oppositeEdge)
focal_class.identifier: findSplitIndex
focal_class.modifiers: protected static
focal_class.parameters: (Vertex vertex, Edge oppositeEdge)
focal_class.return: int
focal_class.signature: int findSplitIndex(Vertex vertex, Edge oppositeEdge)
focal_class.class_method_signature: Skeleton.getEdgeInLav(CircularList<Vertex> lav, Edge oppositeEdge)
focal_class.full_signature: private static Vertex getEdgeInLav(CircularList<Vertex> lav, Edge oppositeEdge)
focal_class.identifier: getEdgeInLav
focal_class.modifiers: private static
focal_class.parameters: (CircularList<Vertex> lav, Edge oppositeEdge)
focal_class.return: Vertex
focal_class.signature: Vertex getEdgeInLav(CircularList<Vertex> lav, Edge oppositeEdge)
focal_class.class_method_signature: Skeleton.addFaceBack(Vertex newVertex, Vertex va, Vertex vb)
focal_class.full_signature: private static void addFaceBack(Vertex newVertex, Vertex va, Vertex vb)
focal_class.identifier: addFaceBack
focal_class.modifiers: private static
focal_class.parameters: (Vertex newVertex, Vertex va, Vertex vb)
focal_class.return: void
focal_class.signature: void addFaceBack(Vertex newVertex, Vertex va, Vertex vb)
focal_class.class_method_signature: Skeleton.addFaceRight(Vertex newVertex, Vertex vb)
focal_class.full_signature: private static FaceNode addFaceRight(Vertex newVertex, Vertex vb)
focal_class.identifier: addFaceRight
focal_class.modifiers: private static
focal_class.parameters: (Vertex newVertex, Vertex vb)
focal_class.return: FaceNode
focal_class.signature: FaceNode addFaceRight(Vertex newVertex, Vertex vb)
focal_class.class_method_signature: Skeleton.addFaceLeft(Vertex newVertex, Vertex va)
focal_class.full_signature: private static FaceNode addFaceLeft(Vertex newVertex, Vertex va)
focal_class.identifier: addFaceLeft
focal_class.modifiers: private static
focal_class.parameters: (Vertex newVertex, Vertex va)
focal_class.return: FaceNode
focal_class.signature: FaceNode addFaceLeft(Vertex newVertex, Vertex va)
focal_class.class_method_signature: Skeleton.calcDistance(Point2d intersect, Edge currentEdge)
focal_class.full_signature: private static double calcDistance(Point2d intersect, Edge currentEdge)
focal_class.identifier: calcDistance
focal_class.modifiers: private static
focal_class.parameters: (Point2d intersect, Edge currentEdge)
focal_class.return: double
focal_class.signature: double calcDistance(Point2d intersect, Edge currentEdge)
focal_class.class_method_signature: Skeleton.distance(Tuple2d p0, Tuple2d p1)
focal_class.full_signature: private static double distance(Tuple2d p0, Tuple2d p1)
focal_class.identifier: distance
focal_class.modifiers: private static
focal_class.parameters: (Tuple2d p0, Tuple2d p1)
focal_class.return: double
focal_class.signature: double distance(Tuple2d p0, Tuple2d p1)
focal_class.class_method_signature: Skeleton.calcBisector(Point2d p, Edge e1, Edge e2)
focal_class.full_signature: public static Ray2d calcBisector(Point2d p, Edge e1, Edge e2)
focal_class.identifier: calcBisector
focal_class.modifiers: public static
focal_class.parameters: (Point2d p, Edge e1, Edge e2)
focal_class.return: Ray2d
focal_class.signature: Ray2d calcBisector(Point2d p, Edge e1, Edge e2)
focal_class.class_method_signature: Skeleton.calcVectorBisector(Vector2d norm1, Vector2d norm2)
focal_class.full_signature: private static Vector2d calcVectorBisector(Vector2d norm1, Vector2d norm2)
focal_class.identifier: calcVectorBisector
focal_class.modifiers: private static
focal_class.parameters: (Vector2d norm1, Vector2d norm2)
focal_class.return: Vector2d
focal_class.signature: Vector2d calcVectorBisector(Vector2d norm1, Vector2d norm2)
focal_method.body: public static SkeletonOutput skeleton(List<Point2d> polygon) {
          return skeleton(polygon, null);
      }
focal_method.class_method_signature: Skeleton.skeleton(List<Point2d> polygon)
focal_method.full_signature: public static SkeletonOutput skeleton(List<Point2d> polygon)
focal_method.identifier: skeleton
focal_method.invocations: skeleton
focal_method.modifiers: public static
focal_method.parameters: (List<Point2d> polygon)
focal_method.return: SkeletonOutput
focal_method.signature: SkeletonOutput skeleton(List<Point2d> polygon)