Start native apps faster with the Composables CLI ->
Class

Offset

An immutable 2D floating-point offset.

Source set: Common
public class Offset(public val packedValue: Long)

An immutable 2D floating-point offset.

Generally speaking, Offsets can be interpreted in two ways:

    origin. For example, the top-left position of children in the RenderBox protocol is typically represented as an Offset from the top left of the parent box.

  1. As representing a point in Cartesian space a specified distance from a separately-maintained
  2. parent is passed an Offset from the screen's origin which it can add to the offsets of its children to find the Offset from the screen's origin to each of the children.

  3. As a vector that can be applied to coordinates. For example, when painting a widget, the

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.

Parameters

packedValue Long value encoding the x and y components of the Offset. Encoded values can be obtained by using the packedValue property of existing Offset instances.

Properties

x

Source set: Common
public inline val x: Float

y

Source set: Common
public inline val y: Float

Functions

component1

Source set: Common
@Stable public inline operator fun component1(): Float

component2

Source set: Common
@Stable public inline operator fun component2(): Float

copy

Source set: Common
public 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

isValid

Source set: Common
public inline fun isValid(): Boolean

Returns:

  • False if x or y is a NaN
  • True if x or y is infinite
  • True otherwise

getDistance

Source set: Common
public 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

Source set: Common
public fun getDistanceSquared(): Float

The square of the magnitude of the offset.

This is cheaper than computing the getDistance itself.

unaryMinus

Source set: Common
public 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.

minus

Source set: Common
public 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

Source set: Common
public 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.

times

Source set: Common
public 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).

div

Source set: Common
public 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).

rem

Source set: Common
public 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).

Members

Companion

Source set: Common
public companion object

Properties

Zero

Source set: Common
public val Zero: Offset

An offset with zero magnitude.

This can be used to represent the origin of a coordinate space.

Infinite

Source set: Common
public val Infinite: Offset

An offset with infinite x and y components.

See also isFinite to check whether both components are finite.

Unspecified

Source set: Common
public val Unspecified: Offset

Represents an unspecified Offset value, usually a replacement for null when a primitive value is desired.