# ImmutableAffineTransform

Artifact: [androidx.ink:ink-geometry](https://developer.android.com/jetpack/androidx/releases/ink) [View Source](https://cs.android.com/search?q=file:androidx/ink/geometry/ImmutableAffineTransform.kt+class:androidx.ink.geometry.ImmutableAffineTransform) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/ink#1.0.0)

*** ** * ** ***


```
public final class ImmutableAffineTransform extends AffineTransform
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [androidx.ink.geometry.AffineTransform](https://developer.android.com/reference/androidx/ink/geometry/AffineTransform) ||
|   | ↳ | [androidx.ink.geometry.ImmutableAffineTransform](https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform) |

*** ** * ** ***

An immutable affine transformation in the plane. Individual operations can be constructed with factory methods like `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#translate(kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#rotateDegrees(kotlin.Float)`.

See `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform` for more general documentation about how these transforms are represented. See `https://developer.android.com/reference/androidx/ink/geometry/MutableAffineTransform` for a mutable alternative to this class.

## Summary

| ### Nested types |
|---|
| `public static class https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion` |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#ImmutableAffineTransform(kotlin.FloatArray)(@https://developer.android.com/reference/androidx/annotation/Size(min = 6) @https://developer.android.com/reference/androidx/annotation/NonNull float[] values)` Like the primary constructor, but accepts a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float-array/index.html` instead of individual `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` values. |
| `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#ImmutableAffineTransform(kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)( float m00, float m10, float m20, float m01, float m11, float m21 )` Constructs this transform with 6 float values, starting with the top left corner of the matrix and proceeding in row-major order. |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#equals(kotlin.Any)(https://developer.android.com/reference/java/lang/Object.html other)` Component-wise equality operator for `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform`. |
| `float` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#getM00()()` Value in the first row, first column of the transform matrix. |
| `float` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#getM01()()` Value in the second row, first column of the transform matrix. |
| `float` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#getM10()()` Value in the first row, second column of the transform matrix. |
| `float` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#getM11()()` Value in the second row, second column of the transform matrix. |
| `float` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#getM20()()` Value in the first row, third column of the transform matrix. |
| `float` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#getM21()()` Value in the second row, third column of the transform matrix. |
| `int` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#hashCode()()` |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#rotateDegrees(kotlin.Float)(@https://developer.android.com/reference/androidx/ink/geometry/AngleDegreesFloat float degrees)` Returns a transformation that rotates `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#rotateDegrees(kotlin.Float)` in the direction from the positive x-axis towards the positive y-axis. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#scale(kotlin.Float)(float scaleFactor)` Returns a transformation that scales in both the x- and y-direction by the given `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#scale(kotlin.Float)`, centered about the origin. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#scale(kotlin.Float,kotlin.Float)(float xScaleFactor, float yScaleFactor)` Returns a transformation that scales in both the x- and y-direction by the given pair of factors; `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#scale(kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#scale(kotlin.Float,kotlin.Float)` respectively, centered about the origin. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#scaleX(kotlin.Float)(float scaleFactor)` Returns a transformation that scales in the x-direction by the given factor, centered about the origin. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#scaleY(kotlin.Float)(float scaleFactor)` Returns a transformation that scales in the y-direction by the given factor, centered about the origin. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#skewX(kotlin.Float)(float sx)` Returns a transformation that skews in the x-direction by the given factor. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#skewY(kotlin.Float)(float sy)` Returns a transformation that skews in the y-direction by the given factor. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#toImmutable()()` Returns an immutable equivalent of this object. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#toString()()` |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#translate(androidx.ink.geometry.Vec)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Vec offset)` Returns a transformation that translates by the given `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#translate(androidx.ink.geometry.Vec)` vector. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#translate(kotlin.Float,kotlin.Float)(float x, float y)` Returns a transformation that translates by the given `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#translate(kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#translate(kotlin.Float,kotlin.Float)` components. |

### Inherited methods

From [androidx.ink.geometry.AffineTransform](https://developer.android.com/reference/androidx/ink/geometry/AffineTransform) `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Box)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Box box)`

Returns an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` containing the result of applying the `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform` to `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Box)`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Parallelogram)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Parallelogram parallelogram)`

Returns an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` containing the result of applying the `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform` to `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Parallelogram)`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableVec` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Vec)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Vec point)`

Returns an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableVec` containing the result of applying the `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform` to `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Vec)`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableSegment` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Segment)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Segment segment)`

Returns an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableSegment` containing the result of applying the `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform` to `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Segment)`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableTriangle` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Triangle)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Triangle triangle)`

Returns an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableTriangle` containing the result of applying the `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform` to `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Triangle)`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Box,androidx.ink.geometry.MutableParallelogram)(
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Box box,
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram outParallelogram
)`

Apply the `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform` to the `https://developer.android.com/reference/androidx/ink/geometry/Box` and store the result in the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Parallelogram,androidx.ink.geometry.MutableParallelogram)(
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Parallelogram parallelogram,
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram outParallelogram
)`

Apply the `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform` to the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` and store the result in the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableVec` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Vec,androidx.ink.geometry.MutableVec)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Vec point, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableVec outVec)`

Apply the `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform` to the `https://developer.android.com/reference/androidx/ink/geometry/Vec` and store the result in the `https://developer.android.com/reference/androidx/ink/geometry/MutableVec`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableSegment` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Segment,androidx.ink.geometry.MutableSegment)(
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Segment segment,
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableSegment outSegment
)`

Apply the `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform` to the `https://developer.android.com/reference/androidx/ink/geometry/Segment` and store the result in the `https://developer.android.com/reference/androidx/ink/geometry/MutableSegment`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableTriangle` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#applyTransform(androidx.ink.geometry.Triangle,androidx.ink.geometry.MutableTriangle)(
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Triangle triangle,
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableTriangle outTriangle
)`

Apply the `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform` to the `https://developer.android.com/reference/androidx/ink/geometry/Triangle` and store the result in the `https://developer.android.com/reference/androidx/ink/geometry/MutableTriangle`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#computeInverse()()`

Returns the inverse of the `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableAffineTransform` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#computeInverse(androidx.ink.geometry.MutableAffineTransform)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableAffineTransform outAffineTransform)`

Populates `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#computeInverse(androidx.ink.geometry.MutableAffineTransform)` with the inverse of this `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform`.
`final @https://developer.android.com/reference/androidx/annotation/Size(min = 6) @https://developer.android.com/reference/androidx/annotation/NonNull float[]` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#getValues(kotlin.FloatArray)(@https://developer.android.com/reference/androidx/annotation/Size(min = 6) @https://developer.android.com/reference/androidx/annotation/NonNull float[] outArray)`

Populates the first 6 elements of `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#getValues(kotlin.FloatArray)` with the values of this transform, starting with the top left corner of the matrix and proceeding in row-major order.
`final boolean` `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#isAlmostEqual(androidx.ink.geometry.AffineTransform,kotlin.Float)(
@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/AffineTransform other,
@https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0) float tolerance
)`

Compares this `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform` with `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#isAlmostEqual(androidx.ink.geometry.AffineTransform,kotlin.Float)`, and returns true if each component of the transform matrix is within `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#isAlmostEqual(androidx.ink.geometry.AffineTransform,kotlin.Float)` of the corresponding component of `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#isAlmostEqual(androidx.ink.geometry.AffineTransform,kotlin.Float)`.

## Public constructors

### ImmutableAffineTransform

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/ink#1.0.0)

```
public ImmutableAffineTransform(@Size(min = 6) @NonNull float[] values)
```

Like the primary constructor, but accepts a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float-array/index.html` instead of individual `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` values.

### ImmutableAffineTransform

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/ink#1.0.0)

```
public ImmutableAffineTransform(
    float m00,
    float m10,
    float m20,
    float m01,
    float m11,
    float m21
)
```

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 `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#scale(kotlin.Float,kotlin.Float)` or `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#translate(kotlin.Float,kotlin.Float)`, 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 `https://developer.android.com/reference/androidx/ink/geometry/AffineTransform#getValues(kotlin.FloatArray)`. To construct this object using an array as input, there is another public constructor for that.

## Public methods

### equals

Added in [1.1.0-alpha11](https://developer.android.com/jetpack/androidx/releases/ink#1.1.0-alpha11)

```
public boolean equals(Object other)
```

Component-wise equality operator for `https://developer.android.com/reference/androidx/ink/geometry/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 `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform#equals(kotlin.Any)` in some cases.

### getM00

```
public float getM00()
```

Value in the first row, first column of the transform matrix.

### getM01

```
public float getM01()
```

Value in the second row, first column of the transform matrix.

### getM10

```
public float getM10()
```

Value in the first row, second column of the transform matrix.

### getM11

```
public float getM11()
```

Value in the second row, second column of the transform matrix.

### getM20

```
public float getM20()
```

Value in the first row, third column of the transform matrix.

### getM21

```
public float getM21()
```

Value in the second row, third column of the transform matrix.

### hashCode

```
public int hashCode()
```

### rotateDegrees

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/ink#1.0.0)

```
public static final @NonNull ImmutableAffineTransform rotateDegrees(@AngleDegreesFloat float degrees)
```

Returns a transformation that rotates `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#rotateDegrees(kotlin.Float)` in the direction from the positive x-axis towards the positive y-axis.

### scale

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/ink#1.0.0)

```
public static final @NonNull ImmutableAffineTransform scale(float scaleFactor)
```

Returns a transformation that scales in both the x- and y-direction by the given `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#scale(kotlin.Float)`, centered about the origin.

### scale

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/ink#1.0.0)

```
public static final @NonNull ImmutableAffineTransform scale(float xScaleFactor, float yScaleFactor)
```

Returns a transformation that scales in both the x- and y-direction by the given pair of factors; `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#scale(kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#scale(kotlin.Float,kotlin.Float)` respectively, centered about the origin.

### scaleX

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/ink#1.0.0)

```
public static final @NonNull ImmutableAffineTransform scaleX(float scaleFactor)
```

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

### scaleY

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/ink#1.0.0)

```
public static final @NonNull ImmutableAffineTransform scaleY(float scaleFactor)
```

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

### skewX

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/ink#1.0.0)

```
public static final @NonNull ImmutableAffineTransform skewX(float sx)
```

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

### skewY

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/ink#1.0.0)

```
public static final @NonNull ImmutableAffineTransform skewY(float sy)
```

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

### toImmutable

```
public @NonNull ImmutableAffineTransform toImmutable()
```

Returns an immutable equivalent of this object. This will return itself if called on an immutable instance.

### toString

```
public @NonNull String toString()
```

### translate

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/ink#1.0.0)

```
public static final @NonNull ImmutableAffineTransform translate(@NonNull Vec offset)
```

Returns a transformation that translates by the given `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#translate(androidx.ink.geometry.Vec)` vector.

### translate

Added in [1.1.0-alpha11](https://developer.android.com/jetpack/androidx/releases/ink#1.1.0-alpha11)

```
public static final @NonNull ImmutableAffineTransform translate(float x, float y)
```

Returns a transformation that translates by the given `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#translate(kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/ImmutableAffineTransform.Companion#translate(kotlin.Float,kotlin.Float)` components.