To simplify this document a bit, we use "gaffe" to indicate both the language and its compiler.
I decided to split the development in a Gui part and a console part, with the first being 'cattoon' and the latter called 'gaffe', so I could more easily develop during some lost hours then that is possible with one big GUI application.
The name 'gaffe' came as a tribute to 'A. Franquin' with his 'Gaston Lagaffe' comics. Do away with the 'la' in 'lagaffe' and there you go. Voila!
.g [ { + .lm } ] ----> .lst { + .ppm }
| ledemaat | Ledemaat (mult. 'ledematen') is Dutch for 'body part or body member' (eg. your arm, your leg,...). I wanted a word that expressed a 'region' but also expressed motion of the region. A ledemaat is basicly a poolygon wit some extra attributes. |
| shot | Sequence of images derived from one base image (the 'scenery') and one gaffe script. |
| scenery | Background image of the shot |
| operation | A basic operation is a function like 'rotate', 'move',... It's counter-part and nemesis is a 'compound'. |
| compound | A compound is a queue which has two functions: (1) to collect operations in its queue, and, (2) if the size of the queue is larger than the number of operations, then the compound will divide the operations it collected in smaller pieces (2).
eg. a compound has collected two operations:There are several types of compounds that have different ways of dividing the operations: pipe, cycle, thread,loop and repeat. A compound can hold both operations and / or sub-compounds. |
| queue | A collection of operations as used in a compound (infra). Compounds have a fixed size. |
| pipe | A word about the naming. I pipe represents a pure sequential way of doing something. Why name it pipe? Because, a pipe is by definition a sequence of smaller pipes (...) get it? |
| thread | A word about the naming. A thread is pars-pro-toto: a thread is woven into a fabric. This compound weaves it's operations by mixing them in an orderly fashion. |
1- #Simple Example
2- #
3- scenery="hunter.ppm";
4- anime jager("fires",250,180)
5- {
6- pipe(10) {
7- pan(3,10,395,285,3,10,395,285);
8- }
9- }
Windows ME/95/2000/NT: C:\...> gaffe myscript.g Unix: ..$ gaffe myscript.gRemarks:
Notes:
Notes:
Notes:
Notes:
Example: #been.ppm - beschrijving van de vlakken bil!5,41,98 knieholte!4,20,144 hiel,60,197 scheen!3,87,210 knie!0,112,143 lies!10,71,87 #ledematen - De eerst is het rotatiepunt onderbeen!FEFEFE=knieholte,hiel,scheen,knie bovenbeen!FEFEFE=bil,knieholte,hiel,scheen,knie,lies
Point are defined by:
<name>[ !<width>],<x>,<y>
'Ledematen' are defined by:
<name>!<colour>={ <point-name> , ... }