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 |
==== |
==== |
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 |