toxi.geom
Class Line2D
java.lang.Object
toxi.geom.Line2D
public class Line2D
- extends java.lang.Object
Method Summary |
Vec2D |
closestPointTo(ReadonlyVec2D p)
Computes the closest point on this line to the point given. |
Line2D |
copy()
|
boolean |
equals(java.lang.Object obj)
|
Vec2D |
getDirection()
|
float |
getLength()
|
float |
getLengthSquared()
|
Vec2D |
getMidPoint()
|
Vec2D |
getNormal()
|
float |
getTheta()
|
boolean |
hasEndPoint(Vec2D p)
|
int |
hashCode()
|
Line2D.LineIntersection |
intersectLine(Line2D l)
Computes intersection between this and the given line. |
Line2D |
offsetAndGrowBy(float offset,
float scale,
Vec2D ref)
|
Line2D |
scale(float scale)
|
Line2D |
set(Vec2D a,
Vec2D b)
|
java.util.List<Vec2D> |
splitIntoSegments(java.util.List<Vec2D> segments,
float stepLength,
boolean addFirst)
|
static java.util.List<Vec2D> |
splitIntoSegments(Vec2D a,
Vec2D b,
float stepLength,
java.util.List<Vec2D> segments,
boolean addFirst)
Splits the line between A and B into segments of the given length,
starting at point A. |
Ray2D |
toRay2D()
|
Methods inherited from class java.lang.Object |
getClass, notify, notifyAll, toString, wait, wait, wait |
a
public Vec2D a
b
public Vec2D b
Line2D
public Line2D(ReadonlyVec2D a,
ReadonlyVec2D b)
Line2D
public Line2D(Vec2D a,
Vec2D b)
splitIntoSegments
public static final java.util.List<Vec2D> splitIntoSegments(Vec2D a,
Vec2D b,
float stepLength,
java.util.List<Vec2D> segments,
boolean addFirst)
- Splits the line between A and B into segments of the given length,
starting at point A. The tweened points are added to the given result
list. The last point added is B itself and hence it is likely that the
last segment has a shorter length than the step length requested. The
first point (A) can be omitted and not be added to the list if so
desired.
- Parameters:
a
- start pointb
- end point (always added to results)stepLength
- desired distance between pointssegments
- existing array list for results (or a new list, if null)addFirst
- false, if A is NOT to be added to results
- Returns:
- list of result vectors
closestPointTo
public Vec2D closestPointTo(ReadonlyVec2D p)
- Computes the closest point on this line to the point given.
- Parameters:
p
- point to check against
- Returns:
- closest point on the line
copy
public Line2D copy()
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in class java.lang.Object
getDirection
public Vec2D getDirection()
getLength
public float getLength()
getLengthSquared
public float getLengthSquared()
getMidPoint
public Vec2D getMidPoint()
getNormal
public Vec2D getNormal()
getTheta
public float getTheta()
hasEndPoint
public boolean hasEndPoint(Vec2D p)
hashCode
public int hashCode()
- Overrides:
hashCode
in class java.lang.Object
intersectLine
public Line2D.LineIntersection intersectLine(Line2D l)
- Computes intersection between this and the given line. The returned value
is a
Line2D.LineIntersection
instance and contains both the type of
intersection as well as the intersection point (if existing).
Based on: http://local.wasp.uwa.edu.au/~pbourke/geometry/lineline2d/
- Parameters:
l
- line to intersect with
- Returns:
- intersection result
offsetAndGrowBy
public Line2D offsetAndGrowBy(float offset,
float scale,
Vec2D ref)
scale
public Line2D scale(float scale)
set
public Line2D set(Vec2D a,
Vec2D b)
splitIntoSegments
public java.util.List<Vec2D> splitIntoSegments(java.util.List<Vec2D> segments,
float stepLength,
boolean addFirst)
toRay2D
public Ray2D toRay2D()