MutableStrokeInputBatch
class MutableStrokeInputBatch : StrokeInputBatch
A mutable implementation of StrokeInputBatch. For an immutable alternative, see ImmutableStrokeInputBatch.
Each appended StrokeInput value is validated compared to the existing batch contents. This means:
-
All floating point values are required to be finite and the format of all inputs must be consistent. This means all inputs must have the same set of optional member variables that hold a value. For example, every input holds a pressure value if-and-only-if every other input holds a pressure value. This is also true for tiltRadians and orientationRadians.
-
The sequence of
StrokeInputvalues must not contain repeated x-y-t triplets, and the time values must be non-negative and non-decreasing. -
Values of strokeUnitLengthCm must be finite and positive, or be
StrokeInput.NO_STROKE_UNIT_LENGTH. -
Values of
StrokeInput.pressuremust fall within the range of 0, 1 or beStrokeInput.NO_PRESSURE -
Values of
StrokeInput.tiltRadiansmust fall within the range of 0, π/2 or beStrokeInput.NO_TILT. -
Values of
StrokeInput.orientationRadiansmust fall within the range of [0, 2π) or beStrokeInput.NO_ORIENTATION. -
The toolType and strokeUnitLengthCm values must be the same across all inputs.
Summary
Public constructors |
|---|
Public functions |
|
|---|---|
MutableStrokeInputBatch |
add(inputBatch: StrokeInputBatch)Validates and appends an |
MutableStrokeInputBatch |
add(input: StrokeInput)Adds an |
MutableStrokeInputBatch |
add(inputs: Collection<StrokeInput>)Validates and appends a collection of |
MutableStrokeInputBatch |
add(Variant of |
Unit |
clear() |
Unit |
Sets the per-stroke seed value that should be used when regenerating a stroke from this input batch. |
open String |
toString() |
Inherited functions |
||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Inherited properties |
||
|---|---|---|
|
Public constructors
Public functions
add
fun add(inputBatch: StrokeInputBatch): MutableStrokeInputBatch
Validates and appends an inputBatch. Invalid inputBatch will result in no change. An exception will be thrown for invalid additions.
add
fun add(input: StrokeInput): MutableStrokeInputBatch
Adds an input to the batch if valid.
Inputs are invalid if they contain values out of the valid range, duplicate a previous input, have an elapsed time before a previous input, or have a different tool type or set different optional fields (pressure, tilt, or orientation) than the inputs already in the batch.
Returns this instance to allow call chaining.
| Parameters | |
|---|---|
input: StrokeInput |
The |
| Returns | |
|---|---|
MutableStrokeInputBatch |
|
| Throws | |
|---|---|
kotlin.IllegalArgumentException |
If the input is not valid. Note that this can be a common occurrence with real user input on certain devices, in particular due to duplicate or out-of-order inputs. Therefore, users should either catch and handle this exception or sanitize the input to avoid ensure validity before passing it to this function. |
add
fun add(inputs: Collection<StrokeInput>): MutableStrokeInputBatch
Validates and appends a collection of StrokeInput. Invalid inputs will result in no change. An exception will be thrown for invalid additions.
Returns this instance to allow call chaining.
| Parameters | |
|---|---|
inputs: Collection<StrokeInput> |
|
| Returns | |
|---|---|
MutableStrokeInputBatch |
|
| Throws | |
|---|---|
kotlin.IllegalArgumentException |
If the input is not valid. Note that this can be a common occurrence with real user input on certain devices, in particular due to duplicate or out-of-order inputs. Therefore, users should either catch and handle this exception or sanitize the input to avoid ensure validity before passing it to this function. |
add
fun add(
type: InputToolType,
x: Float,
y: Float,
elapsedTimeMillis: Long,
strokeUnitLengthCm: Float = StrokeInput.NO_STROKE_UNIT_LENGTH,
pressure: Float = StrokeInput.NO_PRESSURE,
tiltRadians: Float = StrokeInput.NO_TILT,
orientationRadians: Float = StrokeInput.NO_ORIENTATION
): MutableStrokeInputBatch
Variant of add that takes individual parameters instead of a StrokeInput.
Returns this instance to allow call chaining.
| Parameters | |
|---|---|
type: InputToolType |
The |
x: Float |
The x-coordinate of the input position in stroke space. |
y: Float |
The y-coordinate of the input position in stroke space. |
elapsedTimeMillis: Long |
Marks the number of milliseconds since the stroke started. It is a non-negative timestamp in the |
strokeUnitLengthCm: Float = StrokeInput.NO_STROKE_UNIT_LENGTH |
The physical distance in centimeters that the pointer must travel in order to produce an input motion of one stroke unit. For stylus/touch, this is the real-world distance that the stylus/fingertip must move in physical space; for mouse, this is the visual distance that the mouse pointer must travel along the surface of the display. A value of |
pressure: Float = StrokeInput.NO_PRESSURE |
Should be within 0, 1 but it's not enforced until added to a |
tiltRadians: Float = StrokeInput.NO_TILT |
The angle in radians between a stylus and the line perpendicular to the plane of the screen. 0 is perpendicular to the screen and PI/2 is flat against the drawing surface. Absence of |
orientationRadians: Float = StrokeInput.NO_ORIENTATION |
Indicates the direction in which the stylus is pointing in relation to the positive x axis in radians. A value of 0 means the ray from the stylus tip to the end is along positive x and values increase towards the positive y-axis. Absence of |
| Returns | |
|---|---|
MutableStrokeInputBatch |
|
| Throws | |
|---|---|
kotlin.IllegalArgumentException |
If the input is not valid. Note that this can be a common occurrence with real user input on certain devices, in particular due to duplicate or out-of-order inputs. Therefore, users should either catch and handle this exception or sanitize the input to avoid ensure validity before passing it to this function. |
setNoiseSeed
@ExperimentalInkCustomBrushApi
fun setNoiseSeed(seed: Int): Unit
Sets the per-stroke seed value that should be used when regenerating a stroke from this input batch.