ImmutableParallelogram
-
android
class ImmutableParallelogram : Parallelogram
Immutable parallelogram (i.e. a quadrilateral with parallel sides), defined by its center, width, height, rotationDegrees, and skew.
Summary
Public functions |
||
|---|---|---|
open operator Boolean |
android
|
|
open Int |
hashCode() |
android
|
open String |
toString() |
android
|
Public properties |
||
|---|---|---|
open ImmutableVec |
android
|
|
open Float |
The height of the |
android
|
open Float |
The rotation of the |
android
|
open Float |
The horizontal displacement between the two horizontal edges of the |
android
|
open Float |
The width of the |
android
|
Inherited functions |
|||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Public companion functions
fromCenterAndDimensions
fun fromCenterAndDimensions(
center: ImmutableVec,
width: @FloatRange(from = 0.0) Float,
height: Float
): ImmutableParallelogram
Constructs an ImmutableParallelogram with a given center, width and height. The resulting Parallelogram has zero rotationDegrees and skew. If the width is less than zero, the Parallelogram will be normalized.
See the corresponding fields on Parallelogram for details about these parameters.
fromCenterDimensionsAndRotationInDegrees
fun fromCenterDimensionsAndRotationInDegrees(
center: ImmutableVec,
width: @FloatRange(from = 0.0) Float,
height: Float,
rotationDegrees: @AngleDegreesFloat Float
): ImmutableParallelogram
Constructs an ImmutableParallelogram with a given center, width, height and rotationDegrees. The resulting Parallelogram has zero skew. If the width is less than zero or if the rotationDegrees is not in the range [0, 360), the Parallelogram will be normalized.
See the corresponding fields on Parallelogram for details about these parameters.
fromCenterDimensionsRotationInDegreesAndSkew
fun fromCenterDimensionsRotationInDegreesAndSkew(
center: ImmutableVec,
width: @FloatRange(from = 0.0) Float,
height: Float,
rotationDegrees: @AngleDegreesFloat Float,
skew: Float
): ImmutableParallelogram
Constructs an ImmutableParallelogram with a given center, width, height, rotationDegrees and skew. If the width is less than zero or if the rotationDegrees is not in the range [0, 360), the Parallelogram will be normalized.
See the corresponding fields on Parallelogram for details about these parameters.
fromSegmentAndPadding
fun fromSegmentAndPadding(segment: Segment, padding: Float): ImmutableParallelogram
Constructs an ImmutableParallelogram that is aligned with the segment and whose bounds are padding units away from the segment and whose skew is zero. This makes it a rectangle, that is axis-aligned only if segment is axis-aligned.
Public properties
height
open val height: Float
The height of the Parallelogram. May be positive or negative, corresponding to whether the angle from the first semi-axis to the second is also positive or negative.
rotationDegrees
open val rotationDegrees: Float
The rotation of the Parallelogram in degrees from its original axis-aligned orientation in the direction from the positive x-axis towards the positive y-axis.
skew
open val skew: Float
The horizontal displacement between the two horizontal edges of the Parallelogram pre-rotation, as a multiple of the height. Equivalently, this is the cotangent of the absolute angle between the semi-axes. A Parallelogram may have a positive or negative skew, a greater skew indicates a smaller absolute angle between the semi-axes.
width
open val width: Float
The width of the Parallelogram. A 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 rotationDegrees and normalizing that to the range [0, 360).