Import it from @grafloria/engine.
Also has every member of Command, listed on its own entry.
Replace an ink stroke's point list, undoable. The stroke-edit tool's commit: a drag that translates a stroke ends in exactly ONE of these at pointer-up.
Mirrors {@link SetLinkPointsCommand }, minus the hasManualWaypoints bookkeeping
— a stroke's points are ALWAYS authored content (nothing re-routes them), so
there is no derived/manual flag to keep in step.
COLLAB: execute()/undo() each call setPoints exactly ONCE, and points on a
stroke is a per-property register, so stroke geometry reaches peers. One gesture therefore puts
ONE op on the wire — never per-pointermove spam, never a class instance.
The FROM snapshot is taken from the model on first execute() when the caller did not supply one — but the stroke-edit tool DOES supply it (the gesture-start geometry), because by commit time a live-feedback path may already have the model sitting at TO, and a FROM read then would make undo a no-op.
tsclass SetStrokePointsCommand extends Command
Methods
constructor( private strokeId: string, newPoints: readonly StrokePoint[], oldPoints?: readonly StrokePoint[] )override execute(context: CommandContext): void— Execute the commandoverride undo(context: CommandContext): void— Undo the commandoverride canExecute(context: CommandContext): boolean— Check if command can be executedoverride canUndo(context: CommandContext): boolean— Check if command can be undoneoverride canMergeWith(): boolean— One edit gesture = one undo step; never merge two of them.override serialize(): SerializedCommand— Serialize commandoverride getDescription(): string— Get description for UI
Was this page helpful?