PathMeasurepublic class PathMeasure extends Object
Fields Summary |
---|
public static final int | POSITION_MATRIX_FLAG | public static final int | TANGENT_MATRIX_FLAG | private final int | native_instance |
Constructors Summary |
---|
public PathMeasure()Create an empty PathMeasure object. To uses this to measure the length
of a path, and/or to find the position and tangent along it, call
setPath.
Note that once a path is associated with the measure object, it is
undefined if the path is subsequently modified and the the measure object
is used. If the path is modified, you must call setPath with the path.
native_instance = native_create(0, false);
| public PathMeasure(Path path, boolean forceClosed)Create a PathMeasure object associated with the specified path object
(already created and specified). The meansure object can now return the
path's length, and the position and tangent of any position along the
path.
Note that once a path is associated with the measure object, it is
undefined if the path is subsequently modified and the the measure object
is used. If the path is modified, you must call setPath with the path.
// note: the native side makes a copy of path, so we don't need a java
// reference to it here, since it's fine if it gets GC'd
native_instance = native_create(path != null ? path.ni() : 0,
forceClosed);
|
Methods Summary |
---|
protected void | finalize()
native_destroy(native_instance);
| public float | getLength()Return the total length of the current contour, or 0 if no path is
associated with this measure object.
return native_getLength(native_instance);
| public boolean | getMatrix(float distance, Matrix matrix, int flags)Pins distance to 0 <= distance <= getLength(), and then computes the
corresponding matrix. Returns false if there is no path, or a zero-length
path was specified, in which case matrix is unchanged. // must match flags in SkPathMeasure.h
return native_getMatrix(native_instance, distance, matrix.native_instance, flags);
| public boolean | getPosTan(float distance, float[] pos, float[] tan)Pins distance to 0 <= distance <= getLength(), and then computes the
corresponding position and tangent. Returns false if there is no path,
or a zero-length path was specified, in which case position and tangent
are unchanged.
if (pos != null && pos.length < 2 ||
tan != null && tan.length < 2) {
throw new ArrayIndexOutOfBoundsException();
}
return native_getPosTan(native_instance, distance, pos, tan);
| public boolean | getSegment(float startD, float stopD, Path dst, boolean startWithMoveTo)Given a start and stop distance, return in dst the intervening
segment(s). If the segment is zero-length, return false, else return
true. startD and stopD are pinned to legal values (0..getLength()).
If startD <= stopD then return false (and leave dst untouched).
Begin the segment with a moveTo if startWithMoveTo is true
return native_getSegment(native_instance, startD, stopD, dst.ni(), startWithMoveTo);
| public boolean | isClosed()Return true if the current contour is closed()
return native_isClosed(native_instance);
| private static native int | native_create(int native_path, boolean forceClosed)
| private static native void | native_destroy(int native_instance)
| private static native float | native_getLength(int native_instance)
| private static native boolean | native_getMatrix(int native_instance, float distance, int native_matrix, int flags)
| private static native boolean | native_getPosTan(int native_instance, float distance, float[] pos, float[] tan)
| private static native boolean | native_getSegment(int native_instance, float startD, float stopD, int native_path, boolean startWithMoveTo)
| private static native boolean | native_isClosed(int native_instance)
| private static native boolean | native_nextContour(int native_instance)
| private static native void | native_setPath(int native_instance, int native_path, boolean forceClosed)
| public boolean | nextContour()Move to the next contour in the path. Return true if one exists, or
false if we're done with the path.
return native_nextContour(native_instance);
| public void | setPath(Path path, boolean forceClosed)Assign a new path, or null to have none.
// note: the native side makes a copy of path, so we don't need a java
// reference to it here, since it's fine if it gets GC'd
native_setPath(native_instance,
path != null ? path.ni() : 0,
forceClosed);
|
|