Class RMLine

  • All Implemented Interfaces:
    RMArchiver.Archiving, java.lang.Cloneable
    Direct Known Subclasses:
    RMQuadratic

    public class RMLine
    extends RMObject
    This class models a simple line, providing methods for extracting points, distance calculation, bisection, hit detection and such.
    • Constructor Summary

      Constructors 
      Constructor Description
      RMLine()
      Creates a new line.
      RMLine​(float x1, float y1, float x2, float y2)
      Creates a new line for the given x & y start/end points.
      RMLine​(RMPoint startPoint, RMPoint endPoint)
      Creates a new line for the given start point and end point.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double getDistanceLine​(RMPoint aPoint)
      Returns the minimum distance from the given point to this line.
      static double getDistanceToLineSquared​(double p0x, double p0y, double p1x, double p1y, double p2x, double p2y)
      Returns the distance from the given point components (p0) to the given line components (p1->p2).
      RMLine getHead​(double t)
      Returns a new line from this line's start point to given parametric location t (defined from 0-1) on this line.
      RMHitInfo getHitInfo​(RMBezier aBezier)
      Returns a hit info object for this line and the given bezier.
      RMHitInfo getHitInfo​(RMLine aLine)
      Returns a hit info object for this line and the given line.
      RMHitInfo getHitInfo​(RMQuadratic aCurve)
      Returns a hit info object for this line and the given bezier curve.
      float getMaxX()
      Returns the max x point of this line.
      float getMaxY()
      Returns the max y point of this line.
      float getMinX()
      Returns the min x point of this line.
      float getMinY()
      Returns the min y point of this line.
      RMPoint getPoint​(double t)
      Returns the point on this line at the parametric location t (defined from 0-1).
      RMLine getTail​(double t)
      Returns a new line from given parametric location t (defined from 0-1) on this line to this line's end point.
      void setEnd​(double t)
      Reset this curve's end point to the given parametric location (0-1).
      void setStart​(double t)
      Reset this curve's start point to the given parametric location (0-1).
      java.lang.String toString()
      Returns a string representation of this line.
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • RMLine

        public RMLine()
        Creates a new line.
      • RMLine

        public RMLine​(float x1,
                      float y1,
                      float x2,
                      float y2)
        Creates a new line for the given x & y start/end points.
      • RMLine

        public RMLine​(RMPoint startPoint,
                      RMPoint endPoint)
        Creates a new line for the given start point and end point.
    • Method Detail

      • getPoint

        public RMPoint getPoint​(double t)
        Returns the point on this line at the parametric location t (defined from 0-1).
      • getDistanceLine

        public double getDistanceLine​(RMPoint aPoint)
        Returns the minimum distance from the given point to this line.
      • getDistanceToLineSquared

        public static double getDistanceToLineSquared​(double p0x,
                                                      double p0y,
                                                      double p1x,
                                                      double p1y,
                                                      double p2x,
                                                      double p2y)
        Returns the distance from the given point components (p0) to the given line components (p1->p2).
      • getMinX

        public float getMinX()
        Returns the min x point of this line.
      • getMinY

        public float getMinY()
        Returns the min y point of this line.
      • getMaxX

        public float getMaxX()
        Returns the max x point of this line.
      • getMaxY

        public float getMaxY()
        Returns the max y point of this line.
      • getHead

        public RMLine getHead​(double t)
        Returns a new line from this line's start point to given parametric location t (defined from 0-1) on this line.
      • getTail

        public RMLine getTail​(double t)
        Returns a new line from given parametric location t (defined from 0-1) on this line to this line's end point.
      • setEnd

        public void setEnd​(double t)
        Reset this curve's end point to the given parametric location (0-1).
      • setStart

        public void setStart​(double t)
        Reset this curve's start point to the given parametric location (0-1).
      • getHitInfo

        public RMHitInfo getHitInfo​(RMLine aLine)
        Returns a hit info object for this line and the given line.
      • getHitInfo

        public RMHitInfo getHitInfo​(RMQuadratic aCurve)
        Returns a hit info object for this line and the given bezier curve. HitInfo._index is overloaded to contain number of hits.
      • getHitInfo

        public RMHitInfo getHitInfo​(RMBezier aBezier)
        Returns a hit info object for this line and the given bezier.
      • toString

        public java.lang.String toString()
        Returns a string representation of this line.
        Overrides:
        toString in class java.lang.Object