Class Line

    • Constructor Detail

      • Line

        public Line​(Line line)
        Copy constructor.

        The created instance is completely independent from the original instance, it is a deep copy.

        Parameters:
        line - line to copy
    • Method Detail

      • fromDirection

        public static Line fromDirection​(Vector3D point,
                                         Vector3D direction,
                                         double tolerance)
        Create a line from a point and a direction. Line = point + t * direction, where t is any real number.
        Parameters:
        point - on the line. Can be any point.
        direction - of the line. Must not be the zero vector.
        tolerance - below which points are considered identical.
        Returns:
        a new Line with the given point and direction.
        Throws:
        MathIllegalArgumentException - if direction is the zero vector.
        See Also:
        Line(Vector3D, Vector3D, double)
      • reset

        public void reset​(Vector3D p1,
                          Vector3D p2)
                   throws MathIllegalArgumentException
        Reset the instance as if built from two points.
        Parameters:
        p1 - first point belonging to the line (this can be any point)
        p2 - second point belonging to the line (this can be any point, different from p1)
        Throws:
        MathIllegalArgumentException - if the points are equal
      • getTolerance

        public double getTolerance()
        Get the tolerance below which points are considered identical.
        Returns:
        tolerance below which points are considered identical
      • revert

        public Line revert()
        Get a line with reversed direction.
        Returns:
        a new instance, with reversed direction
      • getDirection

        public Vector3D getDirection()
        Get the normalized direction vector.
        Returns:
        normalized direction vector
      • getOrigin

        public Vector3D getOrigin()
        Get the line point closest to the origin.
        Returns:
        line point closest to the origin
      • getAbscissa

        public double getAbscissa​(Vector3D point)
        Get the abscissa of a point with respect to the line.

        The abscissa is 0 if the projection of the point and the projection of the frame origin on the line are the same point.

        Parameters:
        point - point to check
        Returns:
        abscissa of the point
      • pointAt

        public Vector3D pointAt​(double abscissa)
        Get one point from the line.
        Parameters:
        abscissa - desired abscissa for the point
        Returns:
        one point belonging to the line, at specified abscissa
      • toSubSpace

        public Vector1D toSubSpace​(Vector<Euclidean3D,​Vector3D> vector)
        Transform a space point into a sub-space point.
        Parameters:
        vector - n-dimension point of the space
        Returns:
        (n-1)-dimension point of the sub-space corresponding to the specified space point
      • toSpace

        public Vector3D toSpace​(Vector<Euclidean1D,​Vector1D> vector)
        Transform a sub-space point into a space point.
        Parameters:
        vector - (n-1)-dimension point of the sub-space
        Returns:
        n-dimension point of the space corresponding to the specified sub-space point
      • isSimilarTo

        public boolean isSimilarTo​(Line line)
        Check if the instance is similar to another line.

        Lines are considered similar if they contain the same points. This does not mean they are equal since they can have opposite directions.

        Parameters:
        line - line to which instance should be compared
        Returns:
        true if the lines are similar
      • contains

        public boolean contains​(Vector3D p)
        Check if the instance contains a point.
        Parameters:
        p - point to check
        Returns:
        true if p belongs to the line
      • distance

        public double distance​(Vector3D p)
        Compute the distance between the instance and a point.
        Parameters:
        p - to check
        Returns:
        distance between the instance and the point
      • distance

        public double distance​(Line line)
        Compute the shortest distance between the instance and another line.
        Parameters:
        line - line to check against the instance
        Returns:
        shortest distance between the instance and the line
      • closestPoint

        public Vector3D closestPoint​(Line line)
        Compute the point of the instance closest to another line.
        Parameters:
        line - line to check against the instance
        Returns:
        point of the instance closest to another line
      • intersection

        public Vector3D intersection​(Line line)
        Get the intersection point of the instance and another line.
        Parameters:
        line - other line
        Returns:
        intersection point of the instance and the other line or null if there are no intersection points
      • wholeLine

        public SubLine wholeLine()
        Build a sub-line covering the whole line.
        Returns:
        a sub-line covering the whole line