times

operator fun ShapeNode.times(versor: Versor): ShapeNode

node * Versor => ShapeNode
Returns this leaf with versor's motion applied to its geometry — style and tags untouched.

The action for a leaf typed only as ShapeNode: it dispatches over the two sealed families to the shape's own generic *, which returns through the leaf's copy override — the result's runtime class is the receiver's, statically widened to ShapeNode. A leaf with a concrete static type resolves to the generic shape action directly and keeps its type.

Receiver

The leaf to move.

Return

The moved leaf, same style and tags.

Parameters

versor

The motion to apply.

Throws

when a polyline leaf's move lands two consecutive vertices rounded-coincident at the SCALE quantum.

when a polygon leaf's move lands two consecutive vertices rounded-coincident at the SCALE quantum.


operator fun <G : GroupNode> G.times(versor: Versor): G

GroupNode * Versor => GroupNode
Returns this group with versor's motion applied to every leaf in the sub-tree.

The rebuild recurses into nested groups, preserving structure, source order, and each leaf's style and tags; GroupNode.bounds passes through unchanged, so the content moves within the same viewport. The result is the receiver's own class: the moved children return through GroupNode.copy, preserving a subclass that overrides the hook — and a nested subclassed group is preserved the same way, through its own hook.

Receiver

The group to move.

Return

The rebuilt group, as the receiver's class — every leaf moved.

Parameters

versor

The motion to apply.

Type Parameters

G

The receiver's type, preserved in the result.

Throws

when a polyline leaf's move lands two consecutive vertices rounded-coincident at the SCALE quantum.

when a polygon leaf's move lands two consecutive vertices rounded-coincident at the SCALE quantum.