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. |