MutableSegment


class MutableSegment : Segment


Represents a mutable directed line segment between two points. See ImmutableSegment for the immutable alternative.

Summary

Public constructors

Constructs a degenerate MutableSegment with both start and end set to (0f, 0f)

Create the MutableSegment from two existing MutableVec instances.

Public functions

open operator Boolean
equals(other: Any?)
open Int
MutableSegment

Fills this MutableSegment with the same values contained in input and returns this.

open String

Public properties

open MutableVec
open MutableVec

Inherited functions

From androidx.ink.geometry.Segment
ImmutableBox

Returns the minimum bounding box containing the Segment.

MutableBox

Populates outBox with the minimum bounding box containing the Segment.

ImmutableVec

Returns an ImmutableVec with the displacement from start to end.

MutableVec

Populates outVec with the displacement from start to end.

@FloatRange(from = 0.0) Float

The length of the Segment.

ImmutableVec

Returns the point on the segment at the given ratio of the segment's length, measured from the start point.

MutableVec
computeLerpPoint(ratio: Float, outVec: MutableVec)

Fills outVec with the point on the segment at the given ratio of the segment's length, measured from the start point.

ImmutableVec

Returns an ImmutableVec that lies halfway along the segment.

MutableVec

Populates outVec with the point halfway along the segment.

Boolean
isAlmostEqual(other: Segment, tolerance: @FloatRange(from = 0.0) Float)

Compares this Segment with other, and returns true if both start points are considered almost equal with the given tolerance, and likewise for both end points.

Float
project(pointToProject: Vec)

Returns the multiple of the segment's length at which the infinite extrapolation of this segment is closest to pointToProject.

Public constructors

MutableSegment

Added in 1.0.0-alpha02
MutableSegment()

Constructs a degenerate MutableSegment with both start and end set to (0f, 0f)

MutableSegment

Added in 1.0.0-alpha02
MutableSegment(start: MutableVec, end: MutableVec)

Create the MutableSegment from two existing MutableVec instances. Note that these instances will become the internal state of this MutableSegment, so modifications made to them directly or through setters on this MutableSegment will modify the input MutableVec instances too. This is to allow performance-critical code to avoid any unnecessary allocations. This can be tricky to manage, especially in multithreaded code, so when calling code is unable to guarantee ownership of the nested mutable data at a particular time, it may be safest to construct this with copies of the data to give this MutableSegment exclusive ownership of those copies.

Public functions

equals

open operator fun equals(other: Any?): Boolean

hashCode

open fun hashCode(): Int

populateFrom

Added in 1.0.0-alpha02
fun populateFrom(input: Segment): MutableSegment

Fills this MutableSegment with the same values contained in input and returns this.

toString

open fun toString(): String

Public properties

end

Added in 1.0.0-alpha02
open var endMutableVec

start

Added in 1.0.0-alpha02
open var startMutableVec