Convert TwoTerminal to a more general MultiTerminal in Circ.asy.
authorW. Trevor King <wking@tremily.us>
Wed, 2 May 2012 19:15:37 +0000 (15:15 -0400)
committerW. Trevor King <wking@tremily.us>
Wed, 2 May 2012 19:55:56 +0000 (15:55 -0400)
commitf78c7b3e0089b4c0908de9114e0706fbe101b99b
tree6ea2e43cf34569b755c93143eb3bcd46ab3e50b2
parent7cbe267e0658afcbec1c0b83f473d3fd8e0a2840
Convert TwoTerminal to a more general MultiTerminal in Circ.asy.

This allows me to add switchSPDT, which has three terminals.

Label handling is also more flexible in the new system.  By default,
labels will stay in their current positions (above/below in element
coordinates for label/value).  However, the label text is no longer
rotated along with the element.  If you want rotated text, you'll have
to rotate it yourself:

  MultiTerminal Rpos = resistor(..., dir=90, ...
      label=rotate(90)*Label("my label", align=W), ...);

The benefit to this approach is that you can now set your own
alignment, which will override the default above/below positioning.

This commit also makes some whitespace normalizations and bumps
Circ.asy to version 0.2.  To upgrade code using Circ 0.1, make the
following changes:

* Replace TwoTerminal with MultiTerminal.
* Replace ang=... with dir=... in MultiTerminal initializations.
* Replace x.beg with x.terminal[0] and x.end with x.terminal[1].
* Adjust labeling as described above.
* Replace centerto with two_terminal_centerto.
asymptote/Circ-test.asy
asymptote/Circ.asy