Offset
-
Cmn
value class Offset
An immutable 2D floating-point offset.
Generally speaking, Offsets can be interpreted in two ways:
-
As representing a point in Cartesian space a specified distance from a separately-maintained origin. For example, the top-left position of children in the RenderBox protocol is typically represented as an
Offsetfrom the top left of the parent box. -
As a vector that can be applied to coordinates. For example, when painting a widget, the parent is passed an
Offsetfrom the screen's origin which it can add to the offsets of its children to find theOffsetfrom the screen's origin to each of the children.
Because a particular Offset can be interpreted as one sense at one time then as the other sense at a later time, the same class is used for both senses.
See also:
-
Size, which represents a vector describing the size of a rectangle.
To create an Offset, call the top-level function that accepts an x/y pair of coordinates:
val offset = Offset(x, y)
The primary constructor of Offset is intended to be used with the packedValue property to allow storing offsets in arrays or collections of primitives without boxing.
Summary
Nested types |
|---|
object Offset.Companion |
Public companion properties |
||
|---|---|---|
Offset |
An offset with infinite x and y components. |
Cmn
|
Offset |
Represents an unspecified |
Cmn
|
Offset |
An offset with zero magnitude. |
Cmn
|
Public functions |
||
|---|---|---|
inline operator Float |
Cmn
|
|
inline operator Float |
Cmn
|
|
Offset |
Returns a copy of this Offset instance optionally overriding the x or y parameter |
Cmn
|
operator Offset |
Division operator. |
Cmn
|
Float |
The magnitude of the offset. |
Cmn
|
Float |
The square of the magnitude of the offset. |
Cmn
|
inline Boolean |
isValid()Returns: |
Cmn
|
operator Offset |
Binary subtraction operator. |
Cmn
|
operator Offset |
Binary addition operator. |
Cmn
|
operator Offset |
Modulo (remainder) operator. |
Cmn
|
operator Offset |
Multiplication operator. |
Cmn
|
open String |
toString() |
Cmn
|
inline operator Offset |
Unary negation operator. |
Cmn
|
Extension functions |
||
|---|---|---|
operator Offset |
Cmn
|
|
operator Offset |
Cmn
|
|
IntOffset |
Cmn
|
|
inline Offset |
Offset.takeOrElse(block: () -> Offset)If this |
Cmn
|
Extension properties |
||
|---|---|---|
Boolean |
True if both x and y values of the |
Cmn
|
Boolean |
|
Cmn
|
Boolean |
|
Cmn
|
Public companion properties
Infinite
val Infinite: Offset
An offset with infinite x and y components.
See also isFinite to check whether both components are finite.
Unspecified
val Unspecified: Offset
Represents an unspecified Offset value, usually a replacement for null when a primitive value is desired.
Public functions
copy
fun copy(
x: Float = unpackFloat1(packedValue),
y: Float = unpackFloat2(packedValue)
): Offset
Returns a copy of this Offset instance optionally overriding the x or y parameter
div
operator fun div(operand: Float): Offset
Division operator.
Returns an offset whose coordinates are the coordinates of the left-hand-side operand (an Offset) divided by the scalar right-hand-side operand (a Float).
getDistance
fun getDistance(): Float
The magnitude of the offset.
If you need this value to compare it to another Offset's distance, consider using getDistanceSquared instead, since it is cheaper to compute.
getDistanceSquared
fun getDistanceSquared(): Float
The square of the magnitude of the offset.
This is cheaper than computing the getDistance itself.
minus
operator fun minus(other: Offset): Offset
Binary subtraction operator.
Returns an offset 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.
plus
operator fun plus(other: Offset): Offset
Binary addition operator.
Returns an offset 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.
rem
operator fun rem(operand: Float): Offset
Modulo (remainder) operator.
Returns an offset whose coordinates are the remainder of dividing the coordinates of the left-hand-side operand (an Offset) by the scalar right-hand-side operand (a Float).
times
operator fun times(operand: Float): Offset
Multiplication operator.
Returns an offset whose coordinates are the coordinates of the left-hand-side operand (an Offset) multiplied by the scalar right-hand-side operand (a Float).
unaryMinus
inline operator fun unaryMinus(): Offset
Unary negation operator.
Returns an offset with the coordinates negated.
If the Offset represents an arrow on a plane, this operator returns the same arrow but pointing in the reverse direction.
Extension functions
Offset.takeOrElse
inline fun Offset.takeOrElse(block: () -> Offset): Offset
If this Offset isSpecified then this is returned, otherwise block is executed and its result is returned.