\chapter{Module connector}
\label{connector}

This module provides classes for connecting two \verb|box|-instances with
lines, arcs or curves.
All constructors of the following connector-classes take two
\verb|box|-instances as first arguments. They return a
\verb|normpath|-instance from the first to the second box, starting/ending at
the boxes' outline \verb|path|. The behaviour of the path is determined by the
boxes' center and some angle- and distance-keywords. The resulting path will
additionally be shortened by lengths given in the \verb|boxdists|-keyword (a
list of two lengths, default \verb|[0,0]|).

\section{Class line}

The constructor of the \verb|line| class accepts only boxes and the
\verb|boxdists|-keyword.

\section{Class arc}

The constructor also takes either the \verb|relangle|-keyword or a combination
of \verb|relbulge| and \verb|absbulge|. The ``bulge'' is the greatest distance
between the connecting arc and the straight connecting line.
(Default: \verb|relangle=45|, \verb|relbulge=None|,
\verb|absbulge=None|)\medskip

Note that the bulge- override the angle-keyword. When both \verb|relbulge| and
\verb|absbulge| are given they will be added.

\section{Class curve}

The construktor takes both angle- and bulge-keywords. Here, the bulges are
used as distances between bezier-curve control points:\medskip

\verb|absangle1| or \verb|relangle1|\\
\verb|absangle2| or \verb|relangle2|, where the absolute angle overrides the
relative if both are given. (Default: \verb|relangle1=45|,
\verb|relangle2=45|, \verb|absangle1=None|, \verb|absangle2=None|)\medskip

\verb|absbulge| and \verb|relbulge|, where they will be added if both are
given.\\ (Default: \verb|absbulge|=None \verb|relbulge|=0.39; these default
values produce similar output like the defaults of the arc-class.)\medskip


Note that relative angle-keywords are counted in the following way:
\verb|relangle1| is counted in negative direction, starting at the straight
connector line, and \verb|relangle2| is counted in positive direction.
Therefore, the outcome with two positive relative angles will always leave the
straight connector at its left and will not cross it.

\section{Class twolines}

This class returns two connected straight lines. There is a vast variety of
combinations for angle- and length-keywords. The user has to make sure to
provide a non-ambiguous set of keywords:\medskip

\verb|absangle1| or \verb|relangle1| for the first angle,\\
\verb|relangleM| for the middle angle and\\
\verb|absangle2| or \verb|relangle2| for the ending angle.
Again, the absolute angle overrides the relative if both are given. (Default:
all five angles are \verb|None|)\medskip

\verb|length1| and \verb|length2| for the lengths of the connecting lines.
(Default: \verb|None|)

