Operator \shift provides the way to represent diagrams in pseudo
3D. Classically, diagrams show each sheet layer separately such as
diagrams were drawn with some perspective angle. Sometimes it's even
useful to draw graphical elements as it cannot be seen in reality. For
this reason, a real and computed 2D projection of a 3D geometrical
representation of the model can limit the expressiveness of the Doodle
language. We think it's better to let user express a fake 3D as he
wants.
In this approach, the user's work is bigger than in the automated way
even if there is no physic limitations. In order to reduce this effort
the \shift operator has been introduced. Its goal is to modify the
visual coordinates of a particular vertex. With the vertex to shift
this operator takes two values related to each geometrical axis
(first for the horizontal one and the second for the vertical one).
\shift locally changes a vertex position using two little relative
values expressed in millimeter (can be float values). The coordinates
don't change internally, the change is only visual but
geometrical operations (even the future ones) such as intersection,
symmetry etc...use the shifted coordinates to reflect the visual
reality.
In fact, if a shifted point is used into an geometrical operation to
produce a new point, this new vertex has its physical coordinates
computed such as the shifted point wasn't shifted and the system
computes also shifting values to reflect the geometrical operation in
the visual world. Indeed, if the system wouldn't compute this former
values the result of the geometrical operator would be confusing.
The right figure below highlights one of those situation.
This operator should only appear in a step block.
\shift(a, 4, 0); % draw point 'a' 4mm right to its real position.
\shift(VERTEX, DX, DY);
VERTEX Description : Indicates the vertex which is shifted. Type : Symbol, vertex identifier. Allowed values : Any vertex identifier previously defined. DX Description : Indicates the horizontal relative shift. Type : Integer (millimeter). Allowed values : Any integer value are allowed. DY Description : Indicates the vertical relative shift. Type : Integer (millimeter). Allowed values : Any integer value are allowed.