# ImmutableParallelogram

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

*** ** * ** ***

<br />

```
public final class ImmutableParallelogram 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.ImmutableParallelogram](https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram) |

*** ** * ** ***

Immutable parallelogram (i.e. a quadrilateral with parallel sides), defined by its `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram#center()`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram#width()`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram#height()`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram#rotationDegrees()`, and `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram#skew()`.

## Summary

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram#equals(kotlin.Any)(https://developer.android.com/reference/java/lang/Object.html other)` |
| `static 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/ImmutableParallelogram#fromCenterAndDimensions(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableVec center, @https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0) float width, float height )` Constructs an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` with a given `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterAndDimensions(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterAndDimensions(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterAndDimensions(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float)`. |
| `static 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/ImmutableParallelogram#fromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableVec center, @https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0) float width, float height, @https://developer.android.com/reference/androidx/ink/geometry/AngleDegreesFloat float rotationDegrees )` Constructs an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` with a given `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float)`. |
| `static 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/ImmutableParallelogram#fromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/ink/geometry/ImmutableVec center, @https://developer.android.com/reference/androidx/annotation/FloatRange(from = 0.0) float width, float height, @https://developer.android.com/reference/androidx/ink/geometry/AngleDegreesFloat float rotationDegrees, float skew )` Constructs an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` with a given `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`. |
| `static 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/ImmutableParallelogram#fromSegmentAndPadding(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)` Constructs an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` that is aligned with the `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromSegmentAndPadding(androidx.ink.geometry.Segment,kotlin.Float)` and whose bounds are `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromSegmentAndPadding(androidx.ink.geometry.Segment,kotlin.Float)` units away from the segment and whose `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram#skew()` is zero. |
| `@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/ImmutableParallelogram#getCenter()()` |
| `float` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram#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) float` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram#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/ImmutableParallelogram#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/ImmutableParallelogram#getWidth()()` The width of the `https://developer.android.com/reference/androidx/ink/geometry/Parallelogram`. |
| `int` | `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram#hashCode()()` |
| `@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/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`. |
| `@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/ImmutableParallelogram#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 methods

### equals

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

### fromCenterAndDimensions

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

```
public static final @NonNull ImmutableParallelogram fromCenterAndDimensions(
    @NonNull ImmutableVec center,
    @FloatRange(from = 0.0) float width,
    float height
)
```

Constructs an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` with a given `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterAndDimensions(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterAndDimensions(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterAndDimensions(androidx.ink.geometry.ImmutableVec,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/ImmutableParallelogram#rotationDegrees()` and `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram#skew()`. If the `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterAndDimensions(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float)` is less than zero, the Parallelogram will be normalized.

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

### fromCenterDimensionsAndRotationInDegrees

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

```
public static final @NonNull ImmutableParallelogram fromCenterDimensionsAndRotationInDegrees(
    @NonNull ImmutableVec center,
    @FloatRange(from = 0.0) float width,
    float height,
    @AngleDegreesFloat float rotationDegrees
)
```

Constructs an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` with a given `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.ImmutableVec,kotlin.Float,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/ImmutableParallelogram#skew()`. If the `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float)` is less than zero or if the `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsAndRotationInDegrees(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float)` is not in the range \[0, 360), 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.

### fromCenterDimensionsRotationInDegreesAndSkew

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

```
public static final @NonNull ImmutableParallelogram fromCenterDimensionsRotationInDegreesAndSkew(
    @NonNull ImmutableVec center,
    @FloatRange(from = 0.0) float width,
    float height,
    @AngleDegreesFloat float rotationDegrees,
    float skew
)
```

Constructs an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` with a given `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)`. If the `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)` is less than zero or if the `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromCenterDimensionsRotationInDegreesAndSkew(androidx.ink.geometry.ImmutableVec,kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)` is not in the range \[0, 360), 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.

### fromSegmentAndPadding

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

```
public static final @NonNull ImmutableParallelogram fromSegmentAndPadding(@NonNull Segment segment, float padding)
```

Constructs an `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram` that is aligned with the `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromSegmentAndPadding(androidx.ink.geometry.Segment,kotlin.Float)` and whose bounds are `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromSegmentAndPadding(androidx.ink.geometry.Segment,kotlin.Float)` units away from the segment and whose `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram#skew()` is zero. This makes it a rectangle, that is axis-aligned only if `https://developer.android.com/reference/androidx/ink/geometry/ImmutableParallelogram.Companion#fromSegmentAndPadding(androidx.ink.geometry.Segment,kotlin.Float)` is axis-aligned.

### getCenter

```
public @NonNull ImmutableVec 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) 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()
```

### 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()
```