DiagramTransformPlan class final

Move, rotate and resize steps for one captured element set.

Canvas gestures and headless arrangement commands capture the same plan, so identical input produces identical steps. Every step derives from the captured baseline, never from a previous preview. Resize maps the resolved frames at capture time, which include automatic text growth; the handles shown for the selection use the same frames.

Constructors

DiagramTransformPlan.capture(DiagramDocument document, ResolvedScene scene, Iterable<String> ids, DiagramTransformOperation operation, {ShapeRegistry? registry, String? ownerId})
Captures the transform closure of ids from document and its scene.
factory

Properties

allowed → bool
no setter
blockedId → String?
The first captured element whose lock or capability forbids operation, or null when every element may be transformed.
final
bounds → DiagramRect?
The unrotated resize frame: the owner's frame or the selection bounds.
no setter
document → DiagramDocument
The baseline every step is derived from.
final
elements → Map<String, DiagramElement>
Captured elements, keyed by identity in canonical order.
final
hashCode → int
The hash code for this object.
no setterinherited
operation → DiagramTransformOperation
final
owner → FramedElement?
The single element whose frame and rotation define resize bounds.
final
resolvedFrames → Map<String, FramedElement>
Resolved frames captured for resize, including automatic text growth.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
selectionBounds → DiagramRect?
World bounds of the selected elements, as their handles show them.
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
resize(DiagramRect target, {required bool fixTextWidth}) → List<DiagramStep>
Maps every element from bounds to target in the owner's rotated frame. fixTextWidth records a horizontal resize as wrapping intent.
resizeBounds(DiagramResolver resolver, {required DiagramPoint pointer, required double axisX, required double axisY, bool preserveAspectRatio = false, bool fromCenter = false, String? defaultFontFamily}) → DiagramRect
Target bounds for dragging the resize corner (axisX, axisY) of bounds to pointer (in the unrotated frame), clamped by every captured member's registered minimum size.
rotate({required DiagramPoint pivot, required double radians}) → List<DiagramStep>
Rotates every element by radians about a world-space pivot.
toString() → String
A string representation of this object.
inherited
translate(DiagramPoint delta, {Map<String, String?> parents = const {}}) → List<DiagramStep>
Translates every element; parents reassigns owners of listed elements and the connectors between them (explicit null releases).

Operators

operator ==(Object other) → bool
The equality operator.
inherited