Class SurfaceSplitOperation

java.lang.Object
org.gvsig.fmap.geom.jts.primitive.surface.split.SurfaceSplitOperation

public class SurfaceSplitOperation extends Object
This class is based in the AXIOS team work for UDIG project.
Author:
llmarques
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.gvsig.fmap.geom.Geometry
    split(org.gvsig.fmap.geom.Geometry geometryToBeSplitted, org.gvsig.fmap.geom.Geometry splitter)
    Strategy: Build a graph with all edges and intersection nodes between polygon and linestring.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SurfaceSplitOperation

      public SurfaceSplitOperation()
  • Method Details

    • split

      public org.gvsig.fmap.geom.Geometry split(org.gvsig.fmap.geom.Geometry geometryToBeSplitted, org.gvsig.fmap.geom.Geometry splitter)
      Strategy:
      • Build a graph with all edges and intersection nodes between polygon and linestring.
      • Weigth the amount of nodes according to the number of incident edges. Nodes are only the intersection beetween polygon bondary and linestring and initial points of each part of boundary.
      • Weigth edges according to shared (linestring node) or non shared (boundary of polygon). Store edge cordinates at edge.
      • Iterate over node graph. Start at any node, starting at its first segment.
      • Iterate always to next node, choosing the edge that its first linestring segment that has less left angle (CCW) with the last segment of edge linestring.
      • Delete non shared used edges that was used
      • Decrease weight at 1 of used nodes
      • Delete of graph nodes with weight 1
      Since:
      1.1.0