Methods Summary |
---|
private static void | checkPointArrays(float[] src, int srcIndex, float[] dst, int dstIndex, int pointCount)
// check for too-small and too-big indices
int srcStop = srcIndex + (pointCount << 1);
int dstStop = dstIndex + (pointCount << 1);
if ((pointCount | srcIndex | dstIndex | srcStop | dstStop) < 0 ||
srcStop > src.length || dstStop > dst.length) {
throw new ArrayIndexOutOfBoundsException();
}
|
public boolean | equals(java.lang.Object obj)Returns true iff obj is a Matrix and its values equal our values.
return obj != null &&
obj instanceof Matrix &&
native_equals(native_instance, ((Matrix)obj).native_instance);
|
protected void | finalize()
finalizer(native_instance);
|
private static native void | finalizer(int native_instance)
|
public void | getValues(float[] values)Copy 9 values from the matrix into the array.
if (values.length < 9) {
throw new ArrayIndexOutOfBoundsException();
}
native_getValues(native_instance, values);
|
public boolean | invert(android.graphics.Matrix inverse)If this matrix can be inverted, return true and if inverse is not null,
set inverse to be the inverse of this matrix. If this matrix cannot be
inverted, ignore inverse and return false.
return native_invert(native_instance, inverse.native_instance);
|
public boolean | isIdentity()Returns true if the matrix is identity.
This maybe faster than testing if (getType() == 0)
return native_isIdentity(native_instance);
|
public void | mapPoints(float[] dst, int dstIndex, float[] src, int srcIndex, int pointCount)Apply this matrix to the array of 2D points specified by src, and write
the transformed points into the array of points specified by dst. The
two arrays represent their "points" as pairs of floats [x, y].
checkPointArrays(src, srcIndex, dst, dstIndex, pointCount);
native_mapPoints(native_instance, dst, dstIndex, src, srcIndex,
pointCount, true);
|
public void | mapPoints(float[] dst, float[] src)Apply this matrix to the array of 2D points specified by src, and write
the transformed points into the array of points specified by dst. The
two arrays represent their "points" as pairs of floats [x, y].
if (dst.length != src.length) {
throw new ArrayIndexOutOfBoundsException();
}
mapPoints(dst, 0, src, 0, dst.length >> 1);
|
public void | mapPoints(float[] pts)Apply this matrix to the array of 2D points, and write the transformed
points back into the array
mapPoints(pts, 0, pts, 0, pts.length >> 1);
|
public float | mapRadius(float radius)Return the mean radius of a circle after it has been mapped by
this matrix. NOTE: in perspective this value assumes the circle
has its center at the origin.
return native_mapRadius(native_instance, radius);
|
public boolean | mapRect(RectF dst, RectF src)Apply this matrix to the src rectangle, and write the transformed
rectangle into dst. This is accomplished by transforming the 4 corners of
src, and then setting dst to the bounds of those points.
if (dst == null || src == null) {
throw new NullPointerException();
}
return native_mapRect(native_instance, dst, src);
|
public boolean | mapRect(RectF rect)Apply this matrix to the rectangle, and write the transformed rectangle
back into it. This is accomplished by transforming the 4 corners of rect,
and then setting it to the bounds of those points
return mapRect(rect, rect);
|
public void | mapVectors(float[] dst, int dstIndex, float[] src, int srcIndex, int vectorCount)Apply this matrix to the array of 2D vectors specified by src, and write
the transformed vectors into the array of vectors specified by dst. The
two arrays represent their "vectors" as pairs of floats [x, y].
checkPointArrays(src, srcIndex, dst, dstIndex, vectorCount);
native_mapPoints(native_instance, dst, dstIndex, src, srcIndex,
vectorCount, false);
|
public void | mapVectors(float[] dst, float[] src)Apply this matrix to the array of 2D vectors specified by src, and write
the transformed vectors into the array of vectors specified by dst. The
two arrays represent their "vectors" as pairs of floats [x, y].
if (dst.length != src.length) {
throw new ArrayIndexOutOfBoundsException();
}
mapVectors(dst, 0, src, 0, dst.length >> 1);
|
public void | mapVectors(float[] vecs)Apply this matrix to the array of 2D vectors, and write the transformed
vectors back into the array.
mapVectors(vecs, 0, vecs, 0, vecs.length >> 1);
|
private static native int | native_create(int native_src_or_zero)
|
private static native boolean | native_equals(int native_a, int native_b)
|
private static native void | native_getValues(int native_object, float[] values)
|
private static native boolean | native_invert(int native_object, int inverse)
|
private static native boolean | native_isIdentity(int native_object)
|
private static native void | native_mapPoints(int native_object, float[] dst, int dstIndex, float[] src, int srcIndex, int ptCount, boolean isPts)
|
private static native float | native_mapRadius(int native_object, float radius)
|
private static native boolean | native_mapRect(int native_object, RectF dst, RectF src)
|
private static native boolean | native_postConcat(int native_object, int other_matrix)
|
private static native boolean | native_postRotate(int native_object, float degrees, float px, float py)
|
private static native boolean | native_postRotate(int native_object, float degrees)
|
private static native boolean | native_postScale(int native_object, float sx, float sy, float px, float py)
|
private static native boolean | native_postScale(int native_object, float sx, float sy)
|
private static native boolean | native_postSkew(int native_object, float kx, float ky, float px, float py)
|
private static native boolean | native_postSkew(int native_object, float kx, float ky)
|
private static native boolean | native_postTranslate(int native_object, float dx, float dy)
|
private static native boolean | native_preConcat(int native_object, int other_matrix)
|
private static native boolean | native_preRotate(int native_object, float degrees, float px, float py)
|
private static native boolean | native_preRotate(int native_object, float degrees)
|
private static native boolean | native_preScale(int native_object, float sx, float sy, float px, float py)
|
private static native boolean | native_preScale(int native_object, float sx, float sy)
|
private static native boolean | native_preSkew(int native_object, float kx, float ky, float px, float py)
|
private static native boolean | native_preSkew(int native_object, float kx, float ky)
|
private static native boolean | native_preTranslate(int native_object, float dx, float dy)
|
private static native boolean | native_rectStaysRect(int native_object)
|
private static native void | native_reset(int native_object)
|
private static native void | native_set(int native_object, int other)
|
private static native boolean | native_setConcat(int native_object, int a, int b)
|
private static native boolean | native_setPolyToPoly(int native_object, float[] src, int srcIndex, float[] dst, int dstIndex, int pointCount)
|
private static native boolean | native_setRectToRect(int native_object, RectF src, RectF dst, int stf)
|
private static native void | native_setRotate(int native_object, float degrees, float px, float py)
|
private static native void | native_setRotate(int native_object, float degrees)
|
private static native void | native_setScale(int native_object, float sx, float sy, float px, float py)
|
private static native void | native_setScale(int native_object, float sx, float sy)
|
private static native void | native_setSinCos(int native_object, float sinValue, float cosValue, float px, float py)
|
private static native void | native_setSinCos(int native_object, float sinValue, float cosValue)
|
private static native void | native_setSkew(int native_object, float kx, float ky, float px, float py)
|
private static native void | native_setSkew(int native_object, float kx, float ky)
|
private static native void | native_setTranslate(int native_object, float dx, float dy)
|
private static native void | native_setValues(int native_object, float[] values)
|
final int | ni()
return native_instance;
|
public boolean | postConcat(android.graphics.Matrix other)Postconcats the matrix with the specified matrix.
M' = other * M
return native_postConcat(native_instance, other.native_instance);
|
public boolean | postRotate(float degrees, float px, float py)Postconcats the matrix with the specified rotation.
M' = R(degrees, px, py) * M
return native_postRotate(native_instance, degrees, px, py);
|
public boolean | postRotate(float degrees)Postconcats the matrix with the specified rotation.
M' = R(degrees) * M
return native_postRotate(native_instance, degrees);
|
public boolean | postScale(float sx, float sy, float px, float py)Postconcats the matrix with the specified scale.
M' = S(sx, sy, px, py) * M
return native_postScale(native_instance, sx, sy, px, py);
|
public boolean | postScale(float sx, float sy)Postconcats the matrix with the specified scale.
M' = S(sx, sy) * M
return native_postScale(native_instance, sx, sy);
|
public boolean | postSkew(float kx, float ky, float px, float py)Postconcats the matrix with the specified skew.
M' = K(kx, ky, px, py) * M
return native_postSkew(native_instance, kx, ky, px, py);
|
public boolean | postSkew(float kx, float ky)Postconcats the matrix with the specified skew.
M' = K(kx, ky) * M
return native_postSkew(native_instance, kx, ky);
|
public boolean | postTranslate(float dx, float dy)Postconcats the matrix with the specified translation.
M' = T(dx, dy) * M
return native_postTranslate(native_instance, dx, dy);
|
public boolean | preConcat(android.graphics.Matrix other)Preconcats the matrix with the specified matrix.
M' = M * other
return native_preConcat(native_instance, other.native_instance);
|
public boolean | preRotate(float degrees, float px, float py)Preconcats the matrix with the specified rotation.
M' = M * R(degrees, px, py)
return native_preRotate(native_instance, degrees, px, py);
|
public boolean | preRotate(float degrees)Preconcats the matrix with the specified rotation.
M' = M * R(degrees)
return native_preRotate(native_instance, degrees);
|
public boolean | preScale(float sx, float sy, float px, float py)Preconcats the matrix with the specified scale.
M' = M * S(sx, sy, px, py)
return native_preScale(native_instance, sx, sy, px, py);
|
public boolean | preScale(float sx, float sy)Preconcats the matrix with the specified scale.
M' = M * S(sx, sy)
return native_preScale(native_instance, sx, sy);
|
public boolean | preSkew(float kx, float ky, float px, float py)Preconcats the matrix with the specified skew.
M' = M * K(kx, ky, px, py)
return native_preSkew(native_instance, kx, ky, px, py);
|
public boolean | preSkew(float kx, float ky)Preconcats the matrix with the specified skew.
M' = M * K(kx, ky)
return native_preSkew(native_instance, kx, ky);
|
public boolean | preTranslate(float dx, float dy)Preconcats the matrix with the specified translation.
M' = M * T(dx, dy)
return native_preTranslate(native_instance, dx, dy);
|
public boolean | rectStaysRect()Returns true if will map a rectangle to another rectangle. This can be
true if the matrix is identity, scale-only, or rotates a multiple of 90
degrees.
return native_rectStaysRect(native_instance);
|
public void | reset()Set the matrix to identity
native_reset(native_instance);
|
public void | set(android.graphics.Matrix src)(deep) copy the src matrix into this matrix. If src is null, reset this
matrix to the identity matrix.
if (src == null) {
reset();
} else {
native_set(native_instance, src.native_instance);
}
|
public boolean | setConcat(android.graphics.Matrix a, android.graphics.Matrix b)Set the matrix to the concatenation of the two specified matrices,
returning true if the the result can be represented. Either of the two
matrices may also be the target matrix. this = a * b
return native_setConcat(native_instance, a.native_instance,
b.native_instance);
|
public boolean | setPolyToPoly(float[] src, int srcIndex, float[] dst, int dstIndex, int pointCount)Set the matrix such that the specified src points would map to the
specified dst points. The "points" are represented as an array of floats,
order [x0, y0, x1, y1, ...], where each "point" is 2 float values.
if (pointCount > 4) {
throw new IllegalArgumentException();
}
checkPointArrays(src, srcIndex, dst, dstIndex, pointCount);
return native_setPolyToPoly(native_instance, src, srcIndex,
dst, dstIndex, pointCount);
|
public boolean | setRectToRect(RectF src, RectF dst, android.graphics.Matrix$ScaleToFit stf)Set the matrix to the scale and translate values that map the source
rectangle to the destination rectangle, returning true if the the result
can be represented.
if (dst == null || src == null) {
throw new NullPointerException();
}
return native_setRectToRect(native_instance, src, dst, stf.nativeInt);
|
public void | setRotate(float degrees, float px, float py)Set the matrix to rotate by the specified number of degrees, with a pivot
point at (px, py). The pivot point is the coordinate that should remain
unchanged by the specified transformation.
native_setRotate(native_instance, degrees, px, py);
|
public void | setRotate(float degrees)Set the matrix to rotate about (0,0) by the specified number of degrees.
native_setRotate(native_instance, degrees);
|
public void | setScale(float sx, float sy)Set the matrix to scale by sx and sy.
native_setScale(native_instance, sx, sy);
|
public void | setScale(float sx, float sy, float px, float py)Set the matrix to scale by sx and sy, with a pivot point at (px, py).
The pivot point is the coordinate that should remain unchanged by the
specified transformation.
native_setScale(native_instance, sx, sy, px, py);
|
public void | setSinCos(float sinValue, float cosValue, float px, float py)Set the matrix to rotate by the specified sine and cosine values, with a
pivot point at (px, py). The pivot point is the coordinate that should
remain unchanged by the specified transformation.
native_setSinCos(native_instance, sinValue, cosValue, px, py);
|
public void | setSinCos(float sinValue, float cosValue)Set the matrix to rotate by the specified sine and cosine values.
native_setSinCos(native_instance, sinValue, cosValue);
|
public void | setSkew(float kx, float ky, float px, float py)Set the matrix to skew by sx and sy, with a pivot point at (px, py).
The pivot point is the coordinate that should remain unchanged by the
specified transformation.
native_setSkew(native_instance, kx, ky, px, py);
|
public void | setSkew(float kx, float ky)Set the matrix to skew by sx and sy.
native_setSkew(native_instance, kx, ky);
|
public void | setTranslate(float dx, float dy)Set the matrix to translate by (dx, dy).
native_setTranslate(native_instance, dx, dy);
|
public void | setValues(float[] values)Copy 9 values from the array into the matrix.
Depending on the implementation of Matrix, these may be
transformed into 16.16 integers in the Matrix, such that
a subsequent call to getValues() will not yield exactly
the same values.
if (values.length < 9) {
throw new ArrayIndexOutOfBoundsException();
}
native_setValues(native_instance, values);
|
public java.lang.String | toShortString()
float[] values = new float[9];
getValues(values);
return "[" +
values[0] + ", " + values[1] + ", " + values[2] + "][" +
values[3] + ", " + values[4] + ", " + values[5] + "][" +
values[6] + ", " + values[7] + ", " + values[8] + "]";
|
public java.lang.String | toString()
return "Matrix{" + toShortString() + "}";
|