loop package:diagrams-lib
Type tag for "loopy" trails which return to their starting point.
Construct a loop from a list of closed segments and an open segment
that completes the loop.
Extract the offsets of the segments of a loop.
Extract the segments comprising a loop: a list of closed segments, and
one final open segment.
Extract the vertices of a concretely located loop. Note that the
initial vertex is not repeated at the end. See
trailVertices
for more information.
Extract the segment join points of a concretely located loop. Note
that the initial vertex is not repeated at the end. See
trailPoints for more information.
This function allows you "observe" the fact that lines are implemented
as lists of segments, which may be problematic if we want to think of
lines as parametric vector functions. This also means that the
behavior of this function may not be stable under future changes to
the implementation of trails. For an unproblematic version which only
yields vertices at which there is a sharp corner, excluding points
where the trail is differentiable, see
lineVertices.
This function is not re-exported from
Diagrams.Prelude; to use
it, import
Diagrams.Trail.
Turn a loop into a line by "cutting" it at the common start/end point,
resulting in a line which just happens to start and end at the same
place.
cutLoop is right inverse to
glueLine, that is,
glueLine . cutLoop === id
Determine whether a trail is a loop.
Reverse a concretely located loop. See
reverseLocTrail. Note
that this is guaranteed to preserve the location.
Convert a loop into a
Trail. This is the same as
wrapTrail, but with a more specific type, which can
occasionally be convenient for fixing the type of a polymorphic
expression.
A convenience function for converting a Located loop directly
into a diagram; strokeLocLoop = stroke . trailLike . mapLoc
wrapLoop.
A composition of
strokeT and
wrapLoop for conveniently
converting a loop directly into a diagram.