y.geom
Class LineSegment

java.lang.Object
  |
  +--y.geom.LineSegment
All Implemented Interfaces:
PlaneObject

public class LineSegment
extends Object
implements PlaneObject

This class represents a line segment in the plane. A line segment is defined by its two end points.


Constructor Summary
LineSegment(YPoint p1, YPoint p2)
          Returns a new LineSegment.
 
Method Summary
static boolean boxIntersectsSegment(YRectangle box, double sx, double sy, double tx, double ty)
          Checks whether a line segment intersects a box.
static boolean boxIntersectsSegment(YRectangle box, YPoint s, YPoint t)
          Checks whether a line segment intersects a box.
 boolean contains(YPoint point)
          Checks whether a given point lies on this line segment.
 YRectangle getBoundingBox()
          Returns the smallest Rectangle which contains the object.
 YPoint getFirstEndPoint()
          Returns the first endpoint of the line segment.
static YPoint getIntersection(LineSegment s1, LineSegment s2)
          Returns intersection point between the two line segments, if there is one or null if the two linesegments do not intersect.
 double getScope()
          Returns the scope of the line segment.
 YPoint getSecondEndPoint()
          Returns the second endpoint of the line segment.
 double getXOffset()
          Returns the y value of the line on x coordinate 0.
 boolean intersects(YPoint p)
          Checks whether the line segment intersects a point.
 boolean intersects(YRectangle box)
          Checks whether the line segment intersects a box.
 boolean isInXIntervall(double x)
          Returns if the projection on the X axis of the line segment covers a certain point on the X Axis.
 boolean isInYIntervall(double y)
          Returns if the projection on the Y axis of the line segment covers a certain point on the Y Axis.
 double length()
          Returns the length of the line segmtn, this is the value of the eucledian norm.
 AffineLine toAffineLine()
          Returns the affine line defined by the end points of the line segment.
 String toString()
          String representation of the line.
 YVector toYVector()
          Returns the vector pointing from the first end point to the second endpoint of the line segment.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LineSegment

public LineSegment(YPoint p1,
                   YPoint p2)
Returns a new LineSegment.

Parameters:
p1 - the first endpoint of the line segment.
p2 - the second endpoint of the line segment.
Method Detail

getFirstEndPoint

public YPoint getFirstEndPoint()
Returns the first endpoint of the line segment.


getSecondEndPoint

public YPoint getSecondEndPoint()
Returns the second endpoint of the line segment.


isInYIntervall

public boolean isInYIntervall(double y)
Returns if the projection on the Y axis of the line segment covers a certain point on the Y Axis.


isInXIntervall

public boolean isInXIntervall(double x)
Returns if the projection on the X axis of the line segment covers a certain point on the X Axis.


getXOffset

public double getXOffset()
Returns the y value of the line on x coordinate 0.


getScope

public double getScope()
Returns the scope of the line segment.

Returns:
the scope of the line segment.

length

public double length()
Returns the length of the line segmtn, this is the value of the eucledian norm.

Returns:
an value > 0.

getBoundingBox

public YRectangle getBoundingBox()
Returns the smallest Rectangle which contains the object.

Specified by:
getBoundingBox in interface PlaneObject

intersects

public boolean intersects(YRectangle box)
Checks whether the line segment intersects a box.

Parameters:
box - A rectangle.
Returns:
true if the line segments intersects the box, false otherwise.

contains

public boolean contains(YPoint point)
Checks whether a given point lies on this line segment.

Parameters:
point - an arbitrary point.
Returns:
true if the line segments intersects the box, false otherwise.

intersects

public boolean intersects(YPoint p)
Checks whether the line segment intersects a point.

Parameters:
p - a point
Returns:
true if the line segments intersects the box, false otherwise.

boxIntersectsSegment

public static final boolean boxIntersectsSegment(YRectangle box,
                                                 YPoint s,
                                                 YPoint t)
Checks whether a line segment intersects a box.

Parameters:
box - A rectangle.
s - first endpoint of the line segment.
t - second endpoint of the line segment.
Returns:
true if the line segments intersects the box, false otherwise.

boxIntersectsSegment

public static final boolean boxIntersectsSegment(YRectangle box,
                                                 double sx,
                                                 double sy,
                                                 double tx,
                                                 double ty)
Checks whether a line segment intersects a box. Implemented using the Cohen-Sutherland algorithm.

Parameters:
box - A rectangle
sx - X-coordinate of start point of vector
sy - Y-coordinate of start point of vector
tx - X-coordinate of target point of vector
ty - Y-coordinate of target point of vector
Returns:
true if the line segments intersects the box, false otherwise.

getIntersection

public static YPoint getIntersection(LineSegment s1,
                                     LineSegment s2)
Returns intersection point between the two line segments, if there is one or null if the two linesegments do not intersect.

Parameters:
s1 - first line segment
s2 - second line segment

toYVector

public YVector toYVector()
Returns the vector pointing from the first end point to the second endpoint of the line segment.


toAffineLine

public AffineLine toAffineLine()
Returns the affine line defined by the end points of the line segment.


toString

public String toString()
String representation of the line.

Overrides:
toString in class Object

© Copyright 2000-2003,
yWorks GmbH.
All rights reserved.

2003