Clear live trace when replacing G-code program
This commit is contained in:
@@ -218,6 +218,27 @@ export function XyzacToolPreview({ visual, view = "p", zoom = 1, rotateMode = fa
|
||||
}
|
||||
clearLines(pathGroup);
|
||||
clearLines(liveGroup);
|
||||
// A new PROGRAM_LOAD, including the transient empty snapshot while
|
||||
// loading, starts a new live-trace epoch. Clear internal playback and
|
||||
// history buffers as well as rendered geometry so the previous
|
||||
// program's yellow/orange path cannot be painted again.
|
||||
liveTrace = [];
|
||||
playbackQueue = [];
|
||||
playbackStart = 0;
|
||||
queuedLastTick = -1;
|
||||
renderedTick = state.tick;
|
||||
renderedPose = state.livePose;
|
||||
renderedJoints = state.joints;
|
||||
renderedActiveSegment = state.activeSegmentId ?? 0;
|
||||
renderedProgress = state.activeProgress;
|
||||
paintedTick = renderedTick;
|
||||
paintedPose = renderedPose;
|
||||
paintedJoints = renderedJoints;
|
||||
paintedActiveSegment = renderedActiveSegment;
|
||||
paintedProgress = renderedProgress;
|
||||
// Seed the new epoch without adding a visible history point. The
|
||||
// first post-load motion delta will create the first live segment.
|
||||
liveTick = renderedTick;
|
||||
bounds = fit(segments);
|
||||
// Long programs can contain thousands of linear blocks. Batch their
|
||||
// vertices so preview loading does not block the UI on one WebGL
|
||||
|
||||
Reference in New Issue
Block a user