plugins.contracts.DragOutcome

plugins.contracts.DragOutcome(
    handle,
    target,
    achieved,
    error,
    parameters,
    delta,
    moved,
    constraint_residual,
    topology_changed,
    applied,
    reason,
    iterations,
)

What a drag did, and why — the drag kind’s result.

Attributes

Name Type Description
handle str The handle dragged, as "vertex:3" or "edge:12@0.50".
target np.ndarray The requested position, (3,).
achieved np.ndarray Where the handle ended up, (3,).
error float \|achieved - target\|.
parameters dict[str, Any] The full solved free-parameter mapping.
delta dict[str, np.ndarray] Per-parameter change from the starting design.
moved list[tuple[str, float]] (name, magnitude) for every parameter that moved, largest first.
constraint_residual float Largest \|c(theta)\| after the solve.
topology_changed bool Whether the drag would take the handle off the solid’s boundary, which a frozen graph cannot represent.
applied bool Whether parameters was written back into the scene.
reason str A one-line explanation when the drag was refused.
iterations int Solver steps taken.