Class RingClipper


  • public class RingClipper
    extends java.lang.Object
    Clips rings of points to a rectangle. Uses a variant of Cohen-Sutherland clipping.

    In general the output is not topologically valid. In particular, the output may contain coincident non-noded line segments along the clip rectangle sides. However, the output is sufficiently well-structured that it can be used as input to the OverlayNG algorithm (which is able to process coincident linework due to the need to handle topology collapse under precision reduction).

    Because of the likelihood of creating extraneous line segments along the clipping rectangle sides, this class is not suitable for clipping linestrings.

    The clipping envelope should be generated using RobustClipEnvelopeComputer, to ensure that intersecting line segments are not perturbed by clipping. This is required to ensure that the overlay of the clipped geometry is robust and correct (i.e. the same as if clipping was not used).

    Author:
    Martin Davis
    See Also:
    LineLimiter
    • Constructor Summary

      Constructors 
      Constructor Description
      RingClipper​(Envelope clipEnv)
      Creates a new clipper for the given envelope.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Coordinate[] clip​(Coordinate[] pts)
      Clips a list of points to the clipping rectangle box.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RingClipper

        public RingClipper​(Envelope clipEnv)
        Creates a new clipper for the given envelope.
        Parameters:
        clipEnv - the clipping envelope
    • Method Detail

      • clip

        public Coordinate[] clip​(Coordinate[] pts)
        Clips a list of points to the clipping rectangle box.
        Parameters:
        pts -
        Returns:
        clipped pts array