CornerRadius
value class CornerRadius(val packedValue: Long)
A radius for either circular or elliptical (oval) shapes.
Note consumers should create an instance of this class through the corresponding function constructor as it is represented as an inline class with 2 float parameters packed into a single long to reduce allocation overhead
Properties
inline val x: Float
The radius value on the horizontal axis.
inline val y: Float
The radius value on the vertical axis.
Functions
inline operator fun component1(): Float
inline operator fun component2(): Float
fun copy(x: Float = unpackFloat1(packedValue), y: Float = unpackFloat2(packedValue)) =
CornerRadius(packFloats(x, y))
Returns a copy of this Radius instance optionally overriding the radius parameter for the x or y axis
inline fun isZero(): Boolean
Whether this corner radius is 0 in x, y, or both.
inline fun isCircular(): Boolean
Whether this corner radius describes a quarter circle (x == y).
inline operator fun unaryMinus() = CornerRadius(packedValue xor DualFloatSignBit)
Unary negation operator.
Returns a Radius with the distances negated.
Radiuses with negative values aren't geometrically meaningful, but could occur as part of expressions. For example, negating a radius of one pixel and then adding the result to another radius is equivalent to subtracting a radius of one pixel from the other.
operator fun minus(other: CornerRadius): CornerRadius
Binary subtraction operator.
Returns a radius whose x
value is the left-hand-side operand's x
minus the
right-hand-side operand's x
and whose y
value is the left-hand-side operand's y
minus
the right-hand-side operand's y
.
operator fun plus(other: CornerRadius): CornerRadius
Binary addition operator.
Returns a radius whose x
value is the sum of the x
values of the two operands, and whose
y
value is the sum of the y
values of the two operands.
operator fun times(operand: Float) =
CornerRadius(
packFloats(unpackFloat1(packedValue) * operand, unpackFloat2(packedValue) * operand)
)
Multiplication operator.
Returns a radius whose coordinates are the coordinates of the left-hand-side operand (a radius) multiplied by the scalar right-hand-side operand (a Float).
operator fun div(operand: Float) =
CornerRadius(
packFloats(unpackFloat1(packedValue) / operand, unpackFloat2(packedValue) / operand)
)
Division operator.
Returns a radius whose coordinates are the coordinates of the left-hand-side operand (a radius) divided by the scalar right-hand-side operand (a Float).
Companion Object
Properties
val Zero: CornerRadius
A radius with x
and y
values set to zero.
You can use CornerRadius.Zero
with RoundRect
to have right-angle corners.