Class Ray2d

    • Field Detail

      • phi

        public final double phi
        Phi; the angle from the positive X axis direction in radians.
    • Constructor Detail

      • Ray2d

        public Ray2d​(double x,
                     double y,
                     double phi)
              throws DrawRuntimeException
        Construct a new Ray2d.
        Parameters:
        x - double; the x coordinate of the finite end point of the ray
        y - double; the y coordinate of the finite end point of the ray
        phi - double; the angle from the positive X axis direction in radians.
        Throws:
        DrawRuntimeException - when phi is NaN
      • Ray2d

        public Ray2d​(double x,
                     double y,
                     double throughX,
                     double throughY)
              throws DrawRuntimeException
        Construct a new Ray2d.
        Parameters:
        x - double; the x coordinate of the finite end point of the ray
        y - double; the y coordinate of the finite end point of the ray
        throughX - double; the x coordinate of another point on the ray
        throughY - double; the y coordinate of another point on the ray
        Throws:
        DrawRuntimeException - when throughX == x and throughY == y
      • Ray2d

        public Ray2d​(Point2d point,
                     double throughX,
                     double throughY)
              throws NullPointerException,
                     DrawRuntimeException
        Construct a new Ray2d.
        Parameters:
        point - Point2d; the finite end point of the ray
        throughX - double; the x coordinate of another point on the ray
        throughY - double; the y coordinate of another point on the ray
        Throws:
        NullPointerException - when point is null
        DrawRuntimeException - when throughX == point.x and throughY == point.y
      • Ray2d

        public Ray2d​(double x,
                     double y,
                     Point2d throughPoint)
              throws NullPointerException,
                     DrawRuntimeException
        Construct a new Ray2d.
        Parameters:
        x - double; the x coordinate of the finite end point of the ray
        y - double; the y coordinate of the finite end point of the ray
        throughPoint - Point2d; another point on the ray
        Throws:
        NullPointerException - when throughPoint is null
        DrawRuntimeException - when throughPoint is exactly at (x, y)
    • Method Detail

      • getPhi

        public final double getPhi()
        Retrieve the angle from the positive X axis direction in radians.
        Specified by:
        getPhi in interface Ray<Ray2d,​Point2d,​Space2d>
        Returns:
        double; the angle from the positive X axis direction in radians
      • getEndPoint

        public Point2d getEndPoint()
        Get the finite end point of this Ray.
        Specified by:
        getEndPoint in interface Ray<Ray2d,​Point2d,​Space2d>
        Returns:
        P; the finite end point of this Ray
      • getBounds

        public Bounds2d getBounds()
        Retrieve the bounding rectangle of the object.
        Specified by:
        getBounds in interface Drawable2d
        Overrides:
        getBounds in class Point2d
        Returns:
        Bounds2d; the bounding box of the object
      • neg

        public Ray2d neg()
        Return a new Point with negated coordinate values.
        Specified by:
        neg in interface Directed<Ray2d>
        Specified by:
        neg in interface Point<Point2d,​Space2d>
        Overrides:
        neg in class Point2d
        Returns:
        Point; a new point with negated coordinate values
      • getLocationExtended

        public Ray2d getLocationExtended​(double position)
                                  throws DrawRuntimeException
        Get the location at a position on the line, with its direction. Position must be a positive, finite value
        Specified by:
        getLocationExtended in interface Ray<Ray2d,​Point2d,​Space2d>
        Parameters:
        position - double; the position on the line for which to calculate the point on the line
        Returns:
        R; a ray with the same direction as this ray
        Throws:
        DrawRuntimeException - when position infinite, or NaN.
      • epsilonEquals

        public boolean epsilonEquals​(Ray2d other,
                                     double epsilonCoordinate,
                                     double epsilonDirection)
                              throws NullPointerException,
                                     IllegalArgumentException
        Compare this Directed with another Directed with specified tolerances in the coordinates and the angles.
        Specified by:
        epsilonEquals in interface Directed<Ray2d>
        Parameters:
        other - D; the point to compare with
        epsilonCoordinate - double; the upper bound of difference for one of the coordinates; use Double.POSITIVE_INFINITY if you do not want to check the coordinates
        epsilonDirection - double; the upper bound of difference for the direction(s); use Double.POSITIVE_INFINITY if you do not want to check the angles
        Returns:
        boolean; true if x, y, and z are less than epsilonCoordinate apart, and rotX, rotY and rotZ are less than epsilonRotation apart, otherwise false
        Throws:
        NullPointerException - when point is null
        IllegalArgumentException - epsilonCoordinate or epsilonRotation is NaN or negative