ImmutableAffineTransform



An immutable affine transformation in the plane. Individual operations can be constructed with factory methods like translate and rotateDegrees.

See AffineTransform for more general documentation about how these transforms are represented. See MutableAffineTransform for a mutable alternative to this class.

Summary

Public companion functions

ImmutableAffineTransform

Returns a transformation that rotates degrees in the direction from the positive x-axis towards the positive y-axis.

Cmn
ImmutableAffineTransform
scale(scaleFactor: Float)

Returns a transformation that scales in both the x- and y-direction by the given scaleFactor, centered about the origin.

Cmn
ImmutableAffineTransform
scale(xScaleFactor: Float, yScaleFactor: Float)

Returns a transformation that scales in both the x- and y-direction by the given pair of factors; xScaleFactor and yScaleFactor respectively, centered about the origin.

Cmn
ImmutableAffineTransform
scaleX(scaleFactor: Float)

Returns a transformation that scales in the x-direction by the given factor, centered about the origin.

Cmn
ImmutableAffineTransform
scaleY(scaleFactor: Float)

Returns a transformation that scales in the y-direction by the given factor, centered about the origin.

Cmn
ImmutableAffineTransform
skewX(sx: Float)

Returns a transformation that skews in the x-direction by the given factor.

Cmn
ImmutableAffineTransform
skewY(sy: Float)

Returns a transformation that skews in the y-direction by the given factor.

Cmn
ImmutableAffineTransform
translate(offset: Vec)

Returns a transformation that translates by the given offset vector.

Cmn

Public constructors

Like the primary constructor, but accepts a FloatArray instead of individual Float values.

Cmn
ImmutableAffineTransform(
    m00: Float,
    m10: Float,
    m20: Float,
    m01: Float,
    m11: Float,
    m21: Float
)

Constructs this transform with 6 float values, starting with the top left corner of the matrix and proceeding in row-major order.

Cmn

Public functions

open operator Boolean
equals(other: Any?)

Component-wise equality operator for ImmutableAffineTransform.

Cmn
open Int
Cmn
open String
Cmn

Inherited functions

From androidx.ink.geometry.AffineTransform
ImmutableParallelogram

Returns an ImmutableParallelogram containing the result of applying the AffineTransform to box.

Cmn
ImmutableParallelogram
applyTransform(parallelogram: Parallelogram)

Returns an ImmutableParallelogram containing the result of applying the AffineTransform to parallelogram.

Cmn
ImmutableVec

Returns an ImmutableVec containing the result of applying the AffineTransform to point.

Cmn
ImmutableSegment

Returns an ImmutableSegment containing the result of applying the AffineTransform to segment.

Cmn
ImmutableTriangle

Returns an ImmutableTriangle containing the result of applying the AffineTransform to triangle.

Cmn
MutableParallelogram
applyTransform(box: Box, outParallelogram: MutableParallelogram)

Apply the AffineTransform to the Box and store the result in the MutableParallelogram.

Cmn
MutableParallelogram
applyTransform(
    parallelogram: Parallelogram,
    outParallelogram: MutableParallelogram
)

Apply the AffineTransform to the Parallelogram and store the result in the MutableParallelogram.

Cmn
MutableVec
applyTransform(point: Vec, outVec: MutableVec)

Apply the AffineTransform to the Vec and store the result in the MutableVec.

Cmn
MutableSegment
applyTransform(segment: Segment, outSegment: MutableSegment)

Apply the AffineTransform to the Segment and store the result in the MutableSegment.

Cmn
MutableTriangle
applyTransform(triangle: Triangle, outTriangle: MutableTriangle)

Apply the AffineTransform to the Triangle and store the result in the MutableTriangle.

Cmn
ImmutableAffineTransform

Returns the inverse of the AffineTransform.

Cmn
MutableAffineTransform

Populates outAffineTransform with the inverse of this AffineTransform.

Cmn
@Size(min = 6) FloatArray
getValues(outArray: @Size(min = 6) FloatArray)

Populates the first 6 elements of outArray with the values of this transform, starting with the top left corner of the matrix and proceeding in row-major order.

Cmn
Boolean
isAlmostEqual(
    other: AffineTransform,
    tolerance: @FloatRange(from = 0.0) Float
)

Compares this AffineTransform with other, and returns true if each component of the transform matrix is within tolerance of the corresponding component of other.

Cmn

Public companion functions

rotateDegrees

fun rotateDegrees(degrees: @AngleDegreesFloat Float): ImmutableAffineTransform

Returns a transformation that rotates degrees in the direction from the positive x-axis towards the positive y-axis.

scale

fun scale(scaleFactor: Float): ImmutableAffineTransform

Returns a transformation that scales in both the x- and y-direction by the given scaleFactor, centered about the origin.

scale

fun scale(xScaleFactor: Float, yScaleFactor: Float): ImmutableAffineTransform

Returns a transformation that scales in both the x- and y-direction by the given pair of factors; xScaleFactor and yScaleFactor respectively, centered about the origin.

scaleX

fun scaleX(scaleFactor: Float): ImmutableAffineTransform

Returns a transformation that scales in the x-direction by the given factor, centered about the origin.

scaleY

fun scaleY(scaleFactor: Float): ImmutableAffineTransform

Returns a transformation that scales in the y-direction by the given factor, centered about the origin.

skewX

fun skewX(sx: Float): ImmutableAffineTransform

Returns a transformation that skews in the x-direction by the given factor.

skewY

fun skewY(sy: Float): ImmutableAffineTransform

Returns a transformation that skews in the y-direction by the given factor.

translate

fun translate(offset: Vec): ImmutableAffineTransform

Returns a transformation that translates by the given offset vector.

Public constructors

ImmutableAffineTransform

ImmutableAffineTransform(values: @Size(min = 6) FloatArray)

Like the primary constructor, but accepts a FloatArray instead of individual Float values.

ImmutableAffineTransform

ImmutableAffineTransform(
    m00: Float,
    m10: Float,
    m20: Float,
    m01: Float,
    m11: Float,
    m21: Float
)

Constructs this transform with 6 float values, starting with the top left corner of the matrix and proceeding in row-major order. Prefer to create this object with functions that apply specific transform operations, such as scale or translate, rather than directly passing in the actual numeric values of this transform. This constructor is useful for when the values are needed to be provided all at once, for example for serialization. To access these values in the same order as they are passed in here, use AffineTransform.getValues. To construct this object using an array as input, there is another public constructor for that.

Public functions

equals

open operator fun equals(other: Any?): Boolean

Component-wise equality operator for ImmutableAffineTransform.

Due to the propagation floating point precision errors, operations that may be equivalent over the real numbers are not always equivalent for floats, and might return false for equals in some cases.

hashCode

open fun hashCode(): Int

toString

open fun toString(): String