Class SubLine


  • public class SubLine
    extends java.lang.Object
    This class represents a subset of a Line.
    Since:
    3.0
    • Field Detail

      • DEFAULT_TOLERANCE

        private static final double DEFAULT_TOLERANCE
        Default value for tolerance.
        See Also:
        Constant Field Values
      • line

        private final Line line
        Underlying line.
      • remainingRegion

        private final IntervalsSet remainingRegion
        Remaining region of the hyperplane.
    • Method Detail

      • getSegments

        public java.util.List<Segment> getSegments()
        Get the endpoints of the sub-line.

        A subline may be any arbitrary number of disjoints segments, so the endpoints are provided as a list of endpoint pairs. Each element of the list represents one segment, and each segment contains a start point at index 0 and an end point at index 1. If the sub-line is unbounded in the negative infinity direction, the start point of the first segment will have infinite coordinates. If the sub-line is unbounded in the positive infinity direction, the end point of the last segment will have infinite coordinates. So a sub-line covering the whole line will contain just one row and both elements of this row will have infinite coordinates. If the sub-line is empty, the returned list will contain 0 segments.

        Returns:
        list of segments endpoints
      • intersection

        public Vector3D intersection​(SubLine subLine,
                                     boolean includeEndPoints)
        Get the intersection of the instance and another sub-line.

        This method is related to the intersection method in the Line class, but in addition to compute the point along infinite lines, it also checks the point lies on both sub-line ranges.

        Parameters:
        subLine - other sub-line which may intersect instance
        includeEndPoints - if true, endpoints are considered to belong to instance (i.e. they are closed sets) and may be returned, otherwise endpoints are considered to not belong to instance (i.e. they are open sets) and intersection occurring on endpoints lead to null being returned
        Returns:
        the intersection point if there is one, null if the sub-lines don't intersect