/[gzz]/gzz/doc/pegboard/chug_shear_twirl--benja/peg.rst
ViewVC logotype

Diff of /gzz/doc/pegboard/chug_shear_twirl--benja/peg.rst

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by humppake, Wed Nov 6 11:38:45 2002 UTC revision 1.3 by benja, Fri Nov 8 18:34:28 2002 UTC
# Line 14  implemented so far: *Chug*, *Shear*, and Line 14  implemented so far: *Chug*, *Shear*, and
14  gives (hopefully) unambiguous specifications for them and  gives (hopefully) unambiguous specifications for them and
15  assigns them key bindings.  assigns them key bindings.
16    
17    As usual, these will be optional at first; they will be activated
18    by calling Gzz.py with ``--chug-shear-twirl``.
19    
20    
21    Issues
22    ======
23    
24    - What should the key bindings be? Ctrl-C for chug could be nice,
25      and Ctrl-T for twirl could also work, but Ctrl-S is already
26      taken for saving. (Ctrl-H?)
27    
28    
29  Chug  Chug
30  ====  ====
# Line 136  has the following effect:: Line 147  has the following effect::
147                                |                                |
148                                E                                E
149    
150    XXX
151    
152    
153    
154    Twirl
155    =====
156    
157    Twirl rotates a set of connections into another dimension.
158    For example, with ``A`` and ``B`` marked, 'Twirl Right Down'
159    works as follows::
160    
161    
162         Before                 After
163         ------                 -----
164    
165      A - B - C - D               A
166                                  |
167                                  B
168                                  |
169                                  C - D
170    
171    
172    I.e., the *rightward* connections of ``A`` and ``B`` are made
173    into *downward* connections. Twirl does not move the cursor.
174        
175    Twirl operates on two dimensions D1 and D2, which may be equal.
176    It also operates on two directions d1 and d2 (each posward
177    or negward). If D1 = D2 and d1 = d2, Twirl is a no-op.
178    
179    The specification of Twirl on a set of cells (S) is:
180    
181        - Let C be the set of connections on D1, in direction d1.
182          Each of the connections is a pair (negside, posside).
183        - Unmake all connections in C, along D1.
184        - If d1 != d2, reverse all pairs in C (exchange the first
185          and second element).
186        - Make all connections in C, this time along D2.
187    
188    The following precondition must be satisfied (otherwise,
189    nothing is done, and an apology is rendered):
190    
191        - If a cell in S has a connection on D1 in direction d1,
192          it has no connection on D2 in direction d2.
193    
194    
195    - Benja

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26