ReadonlyactiveFalse once the drag is over: ended, cancelled, or ended or abandoned by
the scene (undo(), redo(), clearHistory(), endStep(),
cancelStep(), removeMesh() of the dragged mesh).
Puts the placement back to where the drag started and records nothing. A no-op once it is over.
When no step was open at drag(), this reverts the drag's whole step, so
edits made during the drag (including in steps opened inside it) are
reverted too. Inside a caller's step, it restores the placement and closes
the drag's levels, leaving the caller's step open.
Finishes the drag, recording it as one undo step (closing any step levels opened inside it too). A no-op once it is over.
Sets the mesh's placement. Throws INVALID_ARGUMENT once the drag is over.
Each move recomputes the eager fields that depend on the mesh, so coalesce pointer events to one move per animation frame (keep the latest pose and apply it before Scene.commitFrame), or start the drag with DragOptions.coalesce.
A drag of one mesh: every DragSession.move until DragSession.end is one undo step.
The drag is over once it is ended or cancelled, and also when its step goes away without it: an
undo(),redo(),clearHistory()orremoveMesh()of the dragged mesh ends it first, and acancelStep()(or anendStep()that closes the drag's step) abandons it. AnendStep()lands a pending coalesced pose in the closing step first; acancelStep()drops it with the step.