All Implemented Interfaces:
Embedding<Vector3D,Vector1D>, RegionEmbedding<Vector3D,Vector1D>, Sized

public final class ReverseRay3D extends LineConvexSubset3D
Class representing a portion of a line in 3D Euclidean space that starts at infinity and continues in the direction of the line up to a single end point. This is equivalent to taking a Ray3D and reversing the line direction.

Instances of this class are guaranteed to be immutable.

See Also:
  • Field Details

    • end

      private final double end
      The abscissa of the line subset endpoint.
  • Constructor Details

    • ReverseRay3D

      ReverseRay3D(Line3D line, Vector3D endPoint)
      Construct a new instance from the given line and end point. The end point is projected onto the line. No validation is performed.
      Parameters:
      line - line for the instance
      endPoint - end point for the instance
    • ReverseRay3D

      ReverseRay3D(Line3D line, double end)
      Construct a new instance from the given line and 1D end location. No validation is performed.
      Parameters:
      line - line for the instance
      end - end location for the instance
  • Method Details

    • 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
    • getStartPoint

      public Vector3D getStartPoint()
      Get the start point for the line subset.

      This method always returns null.

      Specified by:
      getStartPoint in class LineConvexSubset3D
      Returns:
      the start point for the line subset, or null if no start point exists
    • getSubspaceStart

      public double getSubspaceStart()
      Get the 1D start location of the line subset or Double.NEGATIVE_INFINITY if no start location exists.

      This method always returns Double.NEGATIVE_INFINITY.

      Specified by:
      getSubspaceStart in class LineConvexSubset3D
      Returns:
      the 1D start location of the line subset or Double.NEGATIVE_INFINITY if no start location exists.
    • getEndPoint

      public Vector3D getEndPoint()
      Get the end point for the line subset.
      Specified by:
      getEndPoint in class LineConvexSubset3D
      Returns:
      the end point for the line subset, or null if no end point exists.
    • getSubspaceEnd

      public double getSubspaceEnd()
      Get the 1D end location of the line subset or Double.POSITIVE_INFINITY if no end location exists.
      Specified by:
      getSubspaceEnd in class LineConvexSubset3D
      Returns:
      the 1D end location of the line subset or Double.POSITIVE_INFINITY if no end location exists
    • getCentroid

      public Vector3D getCentroid()
      Get the centroid, or geometric center, of the line subset or null if the subset is empty or infinite.

      This method always returns null.

      Specified by:
      getCentroid in class LineSubset3D
      Returns:
      the centroid of the line subset, or null if the subset is empty or infinite
    • getBounds

      public Bounds3D getBounds()
      Get the 3D bounding box of the line subset or null if the subset is empty or infinite.

      This method always returns null.

      Specified by:
      getBounds in class LineSubset3D
      Returns:
      the 3D bounding box the line subset or null if the subset is empty or infinite
    • transform

      public ReverseRay3D transform(Transform<Vector3D> transform)
      Transform this instance.
      Specified by:
      transform in class LineConvexSubset3D
      Parameters:
      transform - the transform to apply
      Returns:
      a new, transformed instance
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • containsAbscissa

      boolean containsAbscissa(double abscissa)
      Return true if the given abscissa value is contained in the line subset (ie, in the subspace region or one of its 1D boundaries).
      Specified by:
      containsAbscissa in class LineConvexSubset3D
      Parameters:
      abscissa - abscissa to check
      Returns:
      true if abscissa lies on the inside or boundary of the subspace region