

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object org.apache.batik.ext.awt.geom.PathLength
public class PathLength
Utilitiy class for length calculations of paths.
PathLength is a utility class for calculating the length of a path, the location of a point at a particular length along the path, and the angle of the tangent to the path at a given length.
It uses a FlatteningPathIterator to create a flattened version of the Path. This means the values returned are not always exact (in fact, they rarely are), but in most cases they are reasonably accurate.
Nested Class Summary  

protected static class 
PathLength.PathSegment
A single path segment in the flattened version of the path. 
protected static class 
PathLength.SingleSegmentPathIterator
A PathIterator that returns only the next path segment from
another PathIterator . 
Field Summary  

protected boolean 
initialised
Whether this path been flattened yet. 
protected Shape 
path
The path to use for calculations. 
protected float 
pathLength
Cached copy of the path length. 
protected int[] 
segmentIndexes
Array where the index is the index of the original path segment and the value is the index of the first of the flattened segments in segments that corresponds to that original path segment. 
protected List 
segments
The list of flattened path segments. 
Constructor Summary  

PathLength(Shape path)
Creates a new PathLength object for the specified Shape . 
Method Summary  

float 
angleAtLength(float length)
Returns the slope of the path at the specified length. 
float 
angleAtLength(int index,
float proportion)
Returns the slope of the path at the specified length. 
int 
findUpperIndex(float length)
Returns the index of the path segment that bounds the specified length along the path. 
float 
getLengthAtSegment(int index)
Returns the length at the start of the segment given by the specified index. 
int 
getNumberOfSegments()
Returns the number of segments in the path. 
Shape 
getPath()
Returns the path to use for calculations. 
protected void 
initialise()
Flattens the path and determines the path length. 
float 
lengthOfPath()
Returns the length of the path used by this PathLength object. 
Point2D 
pointAtLength(float length)
Returns the point that is at the given length along the path. 
Point2D 
pointAtLength(int index,
float proportion)
Returns the point that is the given proportion along the path segment given by the specified index. 
int 
segmentAtLength(float length)
Returns the index of the segment at the given distance along the path. 
void 
setPath(Shape v)
Sets the path to use for calculations. 
Methods inherited from class java.lang.Object 

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
Field Detail 

protected Shape path
protected List segments
protected int[] segmentIndexes
segments
that corresponds to that original path segment.
protected float pathLength
protected boolean initialised
Constructor Detail 

public PathLength(Shape path)
Shape
.
path
 The Path (or Shape) to use.Method Detail 

public Shape getPath()
public void setPath(Shape v)
v
 Path to be used in calculations.public float lengthOfPath()
protected void initialise()
public int getNumberOfSegments()
public float getLengthAtSegment(int index)
public int segmentAtLength(float length)
public Point2D pointAtLength(int index, float proportion)
public Point2D pointAtLength(float length)
length
 The length along the path
public float angleAtLength(int index, float proportion)
index
 The segment numberproportion
 The proportion along the given segment
Math.PI
,
Math.PI
].public float angleAtLength(float length)
length
 The length along the path
Math.PI
,
Math.PI
].public int findUpperIndex(float length)
length
 The length along the path


PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 