math.geom2d.line
Class InvertedRay2D

java.lang.Object
  extended by math.geom2d.curve.AbstractContinuousCurve2D
      extended by math.geom2d.curve.AbstractSmoothCurve2D
          extended by math.geom2d.line.AbstractLine2D
              extended by math.geom2d.line.InvertedRay2D
All Implemented Interfaces:
java.lang.Cloneable, CirculinearContinuousCurve2D, CirculinearCurve2D, CirculinearElement2D, CirculinearShape2D, ContinuousCurve2D, Curve2D, SmoothCurve2D, ContinuousOrientedCurve2D, OrientedCurve2D, SmoothOrientedCurve2D, GeometricObject2D, LinearElement2D, LinearShape2D, Shape2D

public class InvertedRay2D
extends AbstractLine2D
implements java.lang.Cloneable

Inverted ray is defined from an origin and a direction vector. It is composed of all points satisfying the parametric equation:

x(t) = x0+t*dx
y(t) = y0+t*dy

with t comprised between -INFINITY and 0. This is complementary class to Ray2D.


Field Summary
 
Fields inherited from interface math.geom2d.Shape2D
ACCURACY
 
Constructor Summary
InvertedRay2D()
          Empty constructor for Ray2D.
InvertedRay2D(double x, double y, double angle)
          Creates a new Ray2D, originating from point (x, y)<\code>, and going in the direction specified by angle<\code> (in radians).
InvertedRay2D(double x1, double y1, double dx, double dy)
          Creates a new Ray2D, originating from point (x1,y1)<\code>, and going in the direction defined by vector (dx, dy)<\code>.
InvertedRay2D(LinearShape2D line)
          Define a new Ray, with same characteristics as given object.
InvertedRay2D(Point2D point, double angle)
          Creates a new Ray2D, originating from point point<\code>, and going in the direction specified by angle<\code> (in radians).
InvertedRay2D(Point2D point, double dx, double dy)
          Creates a new Ray2D, originating from point point<\code>, and going in the direction defined by vector (dx,dy)<\code>.
InvertedRay2D(Point2D point1, Point2D point2)
          Creates a new Ray2D, originating from point1<\code>, and going in the direction of point2<\code>.
InvertedRay2D(Point2D point, Vector2D vector)
          Creates a new Ray2D, originating from point point<\code>, and going in the direction specified by vector<\code>.
 
Method Summary
 boolean almostEquals(GeometricObject2D obj, double eps)
          Checks if the two objects are similar up to a given threshold value.
 java.awt.geom.GeneralPath appendPath(java.awt.geom.GeneralPath path)
          Throws an infiniteShapeException
 Box2D boundingBox()
          Returns the bounding box of the shape.
 InvertedRay2D clone()
          Ensures public declaration of clone(), and ensures valid return type.
 boolean contains(double x, double y)
          Checks if the shape contains the planar point defined by (x,y).
static InvertedRay2D create(Point2D target, Vector2D direction)
          Deprecated. since 0.11.1
 boolean equals(java.lang.Object obj)
           
 java.awt.geom.GeneralPath getGeneralPath()
          Throws an infiniteShapeException
 double getT0()
          Deprecated. replaced by t0() (since 0.11.1).
 double getT1()
          Deprecated. replaced by t1() (since 0.11.1).
 boolean isBounded()
          Always returns false, because n inverted ray is not bounded.
 InvertedRay2D parallel(double d)
          Returns another instance of InvertedRay2D, parallel to this one, and located at the given distance.
 Point2D point(double t)
          Returns the point located at the given position on the curve.
 Ray2D reverse()
          Reverses this curve, and return the result as an instance of Ray2D.
 double t0()
          Returns Negative infinity.
 double t1()
          Returns 0.
 java.lang.String toString()
           
 InvertedRay2D transform(AffineTransform2D trans)
          Transforms the curve by an affine transform.
 
Methods inherited from class math.geom2d.line.AbstractLine2D
buffer, cartesianEquation, clip, contains, continuousCurves, curvature, direction, distance, distance, getIntersection, getSymmetric, getSymmetric, horizontalAngle, intersection, intersections, isClosed, isColinear, isColinear, isEmpty, isInside, isParallel, isParallel, length, length, origin, parallel, parametric, perpendicular, polarCoefficients, polarCoefficientsSigned, position, position, positionOnLine, positionOnLine, project, projectedPoint, projectedPoint, signedDistance, signedDistance, smoothPieces, subCurve, supportingLine, tangent, transform, windingAngle
 
Methods inherited from class math.geom2d.curve.AbstractSmoothCurve2D
isSingular, leftTangent, normal, rightTangent, singularPoints, vertices
 
Methods inherited from class math.geom2d.curve.AbstractContinuousCurve2D
asAwtShape, asPolyline, draw, firstPoint, lastPoint
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface math.geom2d.curve.SmoothCurve2D
normal
 
Methods inherited from interface math.geom2d.curve.ContinuousCurve2D
asPolyline, leftTangent, rightTangent
 
Methods inherited from interface math.geom2d.curve.Curve2D
asAwtShape, draw, firstPoint, isSingular, lastPoint, singularPoints, vertices
 

Constructor Detail

InvertedRay2D

public InvertedRay2D()
Empty constructor for Ray2D. Default is ray starting at origin, and having a slope of 1*dx and 0*dy.


InvertedRay2D

public InvertedRay2D(Point2D point1,
                     Point2D point2)
Creates a new Ray2D, originating from point1<\code>, and going in the direction of point2<\code>.


InvertedRay2D

public InvertedRay2D(double x1,
                     double y1,
                     double dx,
                     double dy)
Creates a new Ray2D, originating from point (x1,y1)<\code>, and going in the direction defined by vector (dx, dy)<\code>.


InvertedRay2D

public InvertedRay2D(Point2D point,
                     double dx,
                     double dy)
Creates a new Ray2D, originating from point point<\code>, and going in the direction defined by vector (dx,dy)<\code>.


InvertedRay2D

public InvertedRay2D(Point2D point,
                     Vector2D vector)
Creates a new Ray2D, originating from point point<\code>, and going in the direction specified by vector<\code>.


InvertedRay2D

public InvertedRay2D(Point2D point,
                     double angle)
Creates a new Ray2D, originating from point point<\code>, and going in the direction specified by angle<\code> (in radians).


InvertedRay2D

public InvertedRay2D(double x,
                     double y,
                     double angle)
Creates a new Ray2D, originating from point (x, y)<\code>, and going in the direction specified by angle<\code> (in radians).


InvertedRay2D

public InvertedRay2D(LinearShape2D line)
Define a new Ray, with same characteristics as given object.

Method Detail

create

@Deprecated
public static InvertedRay2D create(Point2D target,
                                              Vector2D direction)
Deprecated. since 0.11.1

Static factory for creating a new inverted ray with given direction to target.


parallel

public InvertedRay2D parallel(double d)
Returns another instance of InvertedRay2D, parallel to this one, and located at the given distance.

Specified by:
parallel in interface CirculinearContinuousCurve2D
Specified by:
parallel in interface CirculinearCurve2D
Specified by:
parallel in interface CirculinearElement2D
Parameters:
d - the distance between the original curve and he parallel curve.
Returns:
the parallel curve
See Also:
CirculinearCurve2D.parallel(double)

appendPath

public java.awt.geom.GeneralPath appendPath(java.awt.geom.GeneralPath path)
Throws an infiniteShapeException

Specified by:
appendPath in interface ContinuousCurve2D
Parameters:
path - a path to modify
Returns:
the modified path

getGeneralPath

public java.awt.geom.GeneralPath getGeneralPath()
Throws an infiniteShapeException


point

public Point2D point(double t)
Description copied from interface: Curve2D
Returns the point located at the given position on the curve. If the parameter lies outside the definition range, the parameter corresponding to the closest bound is used instead. This method can be used to draw an approximated outline of a curve, by selecting multiple values for t and drawing lines between them.

Specified by:
point in interface Curve2D

t0

public double t0()
Returns Negative infinity.

Specified by:
t0 in interface Curve2D

getT0

@Deprecated
public double getT0()
Deprecated. replaced by t0() (since 0.11.1).

Specified by:
getT0 in interface Curve2D

t1

public double t1()
Returns 0.

Specified by:
t1 in interface Curve2D

getT1

@Deprecated
public double getT1()
Deprecated. replaced by t1() (since 0.11.1).

Specified by:
getT1 in interface Curve2D

reverse

public Ray2D reverse()
Reverses this curve, and return the result as an instance of Ray2D.

Specified by:
reverse in interface CirculinearContinuousCurve2D
Specified by:
reverse in interface CirculinearCurve2D
Specified by:
reverse in interface CirculinearElement2D
Specified by:
reverse in interface ContinuousCurve2D
Specified by:
reverse in interface Curve2D
Specified by:
reverse in interface SmoothCurve2D
Specified by:
reverse in interface ContinuousOrientedCurve2D
Specified by:
reverse in interface OrientedCurve2D
Specified by:
reverse in interface SmoothOrientedCurve2D
See Also:
Ray2D.reverse()

isBounded

public boolean isBounded()
Always returns false, because n inverted ray is not bounded.

Specified by:
isBounded in interface Shape2D

contains

public boolean contains(double x,
                        double y)
Description copied from interface: Shape2D
Checks if the shape contains the planar point defined by (x,y).

Specified by:
contains in interface Shape2D

boundingBox

public Box2D boundingBox()
Description copied from interface: Shape2D
Returns the bounding box of the shape.

Specified by:
boundingBox in interface Shape2D
Returns:
the bounding box of the shape.

transform

public InvertedRay2D transform(AffineTransform2D trans)
Description copied from interface: Curve2D
Transforms the curve by an affine transform. The result is an instance of Curve2D.

Specified by:
transform in interface ContinuousCurve2D
Specified by:
transform in interface Curve2D
Specified by:
transform in interface SmoothCurve2D
Specified by:
transform in interface ContinuousOrientedCurve2D
Specified by:
transform in interface OrientedCurve2D
Specified by:
transform in interface SmoothOrientedCurve2D
Specified by:
transform in interface LinearElement2D
Specified by:
transform in interface LinearShape2D
Specified by:
transform in interface Shape2D
Specified by:
transform in class AbstractLine2D
Parameters:
trans - an affine transform
Returns:
the transformed shape

almostEquals

public boolean almostEquals(GeometricObject2D obj,
                            double eps)
Description copied from interface: GeometricObject2D
Checks if the two objects are similar up to a given threshold value. This method can be used to compare the results of geometric computations, that introduce errors due to numerical computations.

Specified by:
almostEquals in interface GeometricObject2D
Parameters:
obj - the object to compare
eps - a threshold value, for example the minimal coordinate difference
Returns:
true if both object have the same value up to the threshold

toString

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

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

clone

public InvertedRay2D clone()
Description copied from class: AbstractLine2D
Ensures public declaration of clone(), and ensures valid return type.

Specified by:
clone in interface Curve2D
Specified by:
clone in class AbstractLine2D
Returns:
the cloned curve