Class Ray

    • Field Detail

      • startPoint

        private final Vector2D startPoint
        The start point for the ray.
    • Constructor Detail

      • Ray

        Ray​(Line line,
            Vector2D startPoint)
        Construct a ray from a line and a start point. Callers are responsible for ensuring that the given point lies on the line. No validation is performed.
        Parameters:
        line - line for the ray
        startPoint - start point for the ray
    • Method Detail

      • isFull

        public boolean isFull()
        Return true if this instance contains all points in the hyperplane.

        This method always returns false.

        Returns:
        true if this instance contains all points in the hyperplane
      • isInfinite

        public boolean isInfinite()
        Return true if the size of the instance is infinite.

        This method always returns true.

        Returns:
        true if the size of the instance is infinite
      • isFinite

        public boolean isFinite()
        Return true if the size of the instance is finite.

        This method always returns false.

        Returns:
        true if the size of the instance is finite
      • getSize

        public double getSize()
        Get the size of the instance.

        This method always returns Double.POSITIVE_INFINITY.

        Returns:
        the size of the instance
      • getCentroid

        public Vector2D getCentroid()
        Get the centroid, or geometric center, of the hyperplane subset or null if no centroid exists or one exists but is not unique. A centroid will not exist for empty or infinite subsets.

        The centroid of a geometric object is defined as the mean position of all points in the object, including interior points, vertices, and other points lying on the boundary. If a physical object has a uniform density, then its center of mass is the same as its geometric centroid.

        This method always returns null.

        Returns:
        the centroid of the hyperplane subset or null if no unique centroid exists
        See Also:
        Centroid
      • getSubspaceStart

        public double getSubspaceStart()
        Get the 1D start location of the subset or Double.NEGATIVE_INFINITY if no start location exists.
        Specified by:
        getSubspaceStart in class LineConvexSubset
        Returns:
        the 1D start location of the subset or Double.NEGATIVE_INFINITY if no start location exists.
      • getEndPoint

        public Vector2D getEndPoint()
        Get the end point for the subset.

        This method always returns null.

        Specified by:
        getEndPoint in class LineConvexSubset
        Returns:
        the end point for the subset, or null if no end point exists.
      • getSubspaceEnd

        public double getSubspaceEnd()
        Get the 1D end location of the subset or Double.POSITIVE_INFINITY if no end location exists.

        This method always returns Double.POSITIVE_INFINITY.

        Specified by:
        getSubspaceEnd in class LineConvexSubset
        Returns:
        the 1D end location of the subset or Double.POSITIVE_INFINITY if no end location exists
      • getBounds

        public Bounds2D getBounds()
        Get a Bounds2D object defining an axis-aligned bounding box containing all vertices for this subset. Null is returned if the subset is infinite or does not contain any vertices.

        This method always returns null.

        Specified by:
        getBounds in class LineSubset
        Returns:
        the bounding box for this instance or null if no valid bounds could be determined
      • getDirection

        public Vector2D getDirection()
        Get the direction of the ray. This is a convenience method for ray.getLine().getDirection().
        Returns:
        the direction of the ray
      • reverse

        public ReverseRay reverse()
        Reverse the orientation of the hyperplane for this instance, returning the result as a new instance. The returned subset contains the same points but has a reversed orientation.
        Specified by:
        reverse in interface HyperplaneConvexSubset<Vector2D>
        Specified by:
        reverse in class LineConvexSubset
        Returns:
        a hyperplane convex subset representing the same region but with the opposite orientation.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • classifyAbscissa

        RegionLocation classifyAbscissa​(double abscissa)
        Classify the given line abscissa value with respect to the subspace region.
        Specified by:
        classifyAbscissa in class LineSubset
        Parameters:
        abscissa - the abscissa value to classify
        Returns:
        the region location of the line abscissa value
      • closestAbscissa

        double closestAbscissa​(double abscissa)
        Get the closest value in the subspace region to the given abscissa.
        Specified by:
        closestAbscissa in class LineConvexSubset
        Parameters:
        abscissa - input abscissa
        Returns:
        the closest value in the subspace region to the given abscissa
      • splitOnIntersection

        Split<LineConvexSubset> splitOnIntersection​(Line splitter,
                                                    Vector2D intersection)
        Split this instance using the given splitter line and intersection point.
        Specified by:
        splitOnIntersection in class LineConvexSubset
        Parameters:
        splitter - splitter line
        intersection - intersection point between the splitter line and the line for this instance
        Returns:
        the result of splitting this instance with the given splitter line and intersection point