Why Squash (and Mask) can change the Path

A Spec creates a number of Dimensions that can be set to snake. Stuff…

from scanspec.specs import Line
from scanspec.plot import plot_spec

spec = Line("z", 0, 1, 3) * ~Line("y", 0, 1, 3) * Line("x", 0, 1, 3)
plot_spec(spec)

(Source code, png, hires.png, pdf)

../_images/why-squash-can-change-path-1.png
from scanspec.specs import Line, Squash
from scanspec.plot import plot_spec

spec = Line("z", 0, 1, 3) * Squash(~Line("y", 0, 1, 3) * Line("x", 0, 1, 3), check_path_changes=False)
plot_spec(spec)

(Source code, png, hires.png, pdf)

../_images/why-squash-can-change-path-2.png
from scanspec.specs import Line
from scanspec.plot import plot_spec

spec = Line("z", 0, 1, 3) * Line("y", 0, 1, 3) * ~Line("x", 0, 1, 3)
plot_spec(spec)

(Source code, png, hires.png, pdf)

../_images/why-squash-can-change-path-3.png
from scanspec.specs import Line, Squash
from scanspec.plot import plot_spec

spec = Line("z", 0, 1, 3) * Squash(Line("y", 0, 1, 3) * ~Line("x", 0, 1, 3), check_path_changes=False)
plot_spec(spec)

(Source code, png, hires.png, pdf)

../_images/why-squash-can-change-path-4.png