# MutableParallelogram

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/MutableParallelogram.kt+class:androidx.ink.geometry.MutableParallelogram) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/ink#1.0.0)

*** ** * ** ***

<br />

```
public final class MutableParallelogram extends Parallelogram
```

<br />

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

*** ** * ** ***

Mutable parallelogram (i.e. a quadrilateral with parallel sides), defined by its `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#center()`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#height()`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, and `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#skew()`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#MutableParallelogram()()` Constructs an empty `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` with a center at the origin, a zero width, a zero height, zero rotation, and zero skew. |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#equals(kotlin.Any)(https://developer.android.com/reference/java/lang/Object.html other)` |
| `@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/MutableParallelogram#getCenter()()` |
| `float` | `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#getHeight()()` The height of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`. |
| `@https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0, to = 360.0, toInclusive = false) @https://developer.android.com/reference/androidx/ink/geometry/AngleDegreesFloat float` | `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#getRotationDegrees()()` The rotation of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` in degrees from its original axis-aligned orientation in the direction from the positive x-axis towards the positive y-axis. |
| `float` | `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#getSkew()()` The horizontal displacement between the two horizontal edges of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` pre-rotation, as a multiple of the height. |
| `@https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0) float` | `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#getWidth()()` The width of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`. |
| `int` | `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#hashCode()()` |
| `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/MutableParallelogram#populateFrom(androidx.ink.geometry.Parallelogram)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Parallelogram input)` Fills this `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` with the same values contained in `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFrom(androidx.ink.geometry.Parallelogram)`. |
| `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/MutableParallelogram#populateFromCenterAndDimensions(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableVec center, @https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0) float width, float height )` Populates a `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` to have a given `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterAndDimensions(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterAndDimensions(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterAndDimensions(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float)`. |
| `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/MutableParallelogram#populateFromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableVec center, @https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0) float width, float height, @https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0, to = 360.0, toInclusive = false) @https://developer.android.com/reference/androidx/ink/geometry/AngleDegreesFloat float rotationDegrees )` Populates the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` to have a given `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float)`, with zero `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#skew()`. |
| `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/MutableParallelogram#populateFromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableVec center, @https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0) float width, float height, @https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0, to = 360.0, toInclusive = false) @https://developer.android.com/reference/androidx/ink/geometry/AngleDegreesFloat float rotationDegrees, float skew )` Populates the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` to have a given `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`. |
| `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/MutableParallelogram#populateFromSegmentAndPadding(androidx.ink.geometry.Segment,kotlin.Float)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Segment segment, float padding)` Populates the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` to be aligned with the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromSegmentAndPadding(androidx.ink.geometry.Segment,kotlin.Float)` with its bounds `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromSegmentAndPadding(androidx.ink.geometry.Segment,kotlin.Float)` units away from the segment and `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#skew()` of zero. |
| `void` | `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#setCenter(androidx.ink.geometry.MutableVec)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableVec value)` |
| `void` | `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#setHeight(kotlin.Float)(float value)` The height of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`. |
| `void` | `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#setRotationDegrees(kotlin.Float)( @https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0, to = 360.0, toInclusive = false) @https://developer.android.com/reference/androidx/ink/geometry/AngleDegreesFloat float value )` The rotation of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` in degrees from its original axis-aligned orientation in the direction from the positive x-axis towards the positive y-axis. |
| `void` | `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#setSkew(kotlin.Float)(float value)` The horizontal displacement between the two horizontal edges of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` pre-rotation, as a multiple of the height. |
| `void` | `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#setWidth(kotlin.Float)(@https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0) float value)` The width of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`. |
| `@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/MutableParallelogram#toImmutable()()` Returns an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` that is equivalent to this `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`. |
| `@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/MutableParallelogram#toString()()` |

### Inherited methods

From [androidx.ink.geometry.Parallelogram](https://developer.android.com/reference/androidx/ink/geometry/Parallelogram) `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableBox` `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#computeBoundingBox()()`

Returns the minimum bounding box containing the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableBox` `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#computeBoundingBox(androidx.ink.geometry.MutableBox)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableBox outBox)`

Returns the minimum bounding box containing the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@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/Parallelogram#computeCorners()()`

Returns a list containing the 4 corners of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`.
`final void` `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#computeCorners(androidx.ink.geometry.MutableVec,androidx.ink.geometry.MutableVec,androidx.ink.geometry.MutableVec,androidx.ink.geometry.MutableVec)(

@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableVec outCorner1,

@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableVec outCorner2,

@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableVec outCorner3,

@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableVec outCorner4

)`

Populates the 4 output points with the corners of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`.
`final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@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/Parallelogram#computeSemiAxes()()`

Returns the semi axes of this `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`.
`final void` `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#computeSemiAxes(androidx.ink.geometry.MutableVec,androidx.ink.geometry.MutableVec)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableVec outAxis1, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableVec outAxis2)`

Fills the `https://developer.android.com/reference/androidx/ink/geometry/MutableVec`s with the semi axes of this `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`.
`final float` `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#computeSignedArea()()`

Returns the signed area of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`.
`final boolean` `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#contains(androidx.ink.geometry.ImmutableVec)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableVec point)`

Returns whether the given point is contained within the Box.
`final boolean` `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#isAlmostEqual(androidx.ink.geometry.Parallelogram,kotlin.Float)(

@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/Parallelogram other,

@https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0) float tolerance

)`

Compares this `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` with `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#isAlmostEqual(androidx.ink.geometry.Parallelogram,kotlin.Float)`, and returns true if both `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#center()` points are considered almost equal with the given `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#isAlmostEqual(androidx.ink.geometry.Parallelogram,kotlin.Float)`, and the difference between `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#width()` and `other.width` is less than `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#isAlmostEqual(androidx.ink.geometry.Parallelogram,kotlin.Float)`, and likewise for `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#height()`, `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#rotationDegrees()`, and `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#skew()`.

## Public constructors

### MutableParallelogram

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

```
public MutableParallelogram()
```

Constructs an empty `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` with a center at the origin, a zero width, a zero height, zero rotation, and zero skew. This is intended for subsequent population with one of the `populateFrom` methods.

## Public methods

### equals

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

### getCenter

```
public @NonNull MutableVec getCenter()
```

### getHeight

```
public float getHeight()
```

The height of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`. May be positive or negative, corresponding to whether the angle from the first semi-axis to the second is also positive or negative.

### getRotationDegrees

```
public @FloatRange(from = 0.0, to = 360.0, toInclusive = false) @AngleDegreesFloat float getRotationDegrees()
```

The rotation of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` in degrees from its original axis-aligned orientation in the direction from the positive x-axis towards the positive y-axis.

### getSkew

```
public float getSkew()
```

The horizontal displacement between the two horizontal edges of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` pre-rotation, as a multiple of the height. Equivalently, this is the cotangent of the absolute angle between the semi-axes. A `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` may have a positive or negative skew, a greater skew indicates a smaller absolute angle between the semi-axes.

### getWidth

```
public @FloatRange(from = 0.0) float getWidth()
```

The width of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`. A `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` may *not* have a negative width. If an operation on a parallelogram would result in a negative width, it is instead normalized, by negating both the width and the height, adding 180 to `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#rotationDegrees()` and normalizing that to the range \[0, 360).

### hashCode

```
public int hashCode()
```

### populateFrom

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

```
public final @NonNull MutableParallelogram populateFrom(@NonNull Parallelogram input)
```

Fills this `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` with the same values contained in `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFrom(androidx.ink.geometry.Parallelogram)`.

Returns the modified instance to allow chaining calls.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` | `this` |

### populateFromCenterAndDimensions

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

```
public final @NonNull MutableParallelogram populateFromCenterAndDimensions(
    @NonNull MutableVec center,
    @FloatRange(from = 0.0) float width,
    float height
)
```

Populates a `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` to have a given `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterAndDimensions(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterAndDimensions(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterAndDimensions(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float)`. The resulting `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` has zero `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#rotationDegrees()` and `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#skew()`. If the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterAndDimensions(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float)` is less than zero, the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` will be normalized.

See the corresponding fields on `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` for details about these parameters.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` | `this` |

### populateFromCenterDimensionsAndRotationInDegrees

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

```
public final @NonNull MutableParallelogram populateFromCenterDimensionsAndRotationInDegrees(
    @NonNull MutableVec center,
    @FloatRange(from = 0.0) float width,
    float height,
    @FloatRange(from = 0.0, to = 360.0, toInclusive = false) @AngleDegreesFloat float rotationDegrees
)
```

Populates the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` to have a given `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float)`, with zero `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#skew()`. If the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float)` is less than zero or if the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float)` is not in the range \[0, 360), it will be normalized.

See the corresponding fields on `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` for details about these parameters.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` | `this` |

### populateFromCenterDimensionsRotationInDegreesAndSkew

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

```
public final @NonNull MutableParallelogram populateFromCenterDimensionsRotationInDegreesAndSkew(
    @NonNull MutableVec center,
    @FloatRange(from = 0.0) float width,
    float height,
    @FloatRange(from = 0.0, to = 360.0, toInclusive = false) @AngleDegreesFloat float rotationDegrees,
    float skew
)
```

Populates the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` to have a given `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`. If the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)` is less than zero or if `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.MutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)` is not within the range \[0, 360.0), it will be normalized.

See the corresponding fields on `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` for details about these parameters.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` | `this` |

### populateFromSegmentAndPadding

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

```
public final @NonNull MutableParallelogram populateFromSegmentAndPadding(@NonNull Segment segment, float padding)
```

Populates the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` to be aligned with the `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromSegmentAndPadding(androidx.ink.geometry.Segment,kotlin.Float)` with its bounds `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#populateFromSegmentAndPadding(androidx.ink.geometry.Segment,kotlin.Float)` units away from the segment and `https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram#skew()` of zero.

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/MutableParallelogram` | `this` |

### setCenter

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

```
public void setCenter(@NonNull MutableVec value)
```

### setHeight

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

```
public void setHeight(float value)
```

The height of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`. May be positive or negative, corresponding to whether the angle from the first semi-axis to the second is also positive or negative.

### setRotationDegrees

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

```
public void setRotationDegrees(
    @FloatRange(from = 0.0, to = 360.0, toInclusive = false) @AngleDegreesFloat float value
)
```

The rotation of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` in degrees from its original axis-aligned orientation in the direction from the positive x-axis towards the positive y-axis.

### setSkew

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

```
public void setSkew(float value)
```

The horizontal displacement between the two horizontal edges of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` pre-rotation, as a multiple of the height. Equivalently, this is the cotangent of the absolute angle between the semi-axes. A `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` may have a positive or negative skew, a greater skew indicates a smaller absolute angle between the semi-axes.

### setWidth

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

```
public void setWidth(@FloatRange(from = 0.0) float value)
```

The width of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`. A `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` may *not* have a negative width. If an operation on a parallelogram would result in a negative width, it is instead normalized, by negating both the width and the height, adding 180 to `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram#rotationDegrees()` and normalizing that to the range \[0, 360).

### toImmutable

```
public @NonNull ImmutableParallelogram toImmutable()
```

Returns an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` that is equivalent to this `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`. If this `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram` is immutable, the returned `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` will be the same instance.

### toString

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