Abstract
Gambol is a Euclidean, construction-based, drawing system.
Features
Intuitive construction GUI using unordered calling pattern prediction (ok, just try-it to get the point...;o)
Free movement of any construction element using numerical optimization (done) and construction rearrangement (not done yet...)
Evolutive rendering architecture to support multiple output-formatting (MFC, Qt, Swing, SWT, SVG, XML...)
Strict separation between geometry-related code and GUI staff in order to support easily multiple
platform (e.g WIN32-MFC & Qt, SWING & SWT, ...)
And more...
Technique
Gambol is designed for portability: Gambol++ for c/c++ is available for windows (both with Microsoft MFC GUI and TrollTech-Qt GUI),
and Gambol4j for java is available as an applet or standalone application supporting both SWING and SWT framework.
Other softwares
Dr. Geo (GPL:linux/GTK): [home]
Cabry Geometry (WINDOWS/MAC-OS): [home]
History
Everything started years ago, in 1991/1992, while I was sitting in front of a sturdy Amstrad6128 running "Locomotive Basic", and wondering what the hell I could code... Then came that silly idea of a "geometrical construction sketch system", and I started coding until I filled up the 64k code page memory plus the 64k data page memory. The result was somewhat amazing : it could load a construction set from an ascii file and display it on screen, where you could interact with some anchor points using the joystick!!! No need to say that the code was a bit tricky (using only array of scalar value as the only data structure - nothing impossible for those F77 guys out there... ;o). Fortunately I sold that piece of hardware and the code vanished with it... end of episode one.
Latter in 1995/1996, while I was looking for a good subject for computer-class project, I remember that piece of code: "if I was able to do it in basic, I could do it in caml". My professor was enough open-minded and confident (Hi Fred!) to let me go, so three months latter I came back with a complete sketch system allowing to draw the construction graphically (using autocad-like menus) and interact with it on-screen: a 20/20!
Another great piece of code lost (well, great souvenir at least!)... I continued to code in caml and objective-caml for a couple or more years doing some funny thing (like generating the linear co-tangent code of F77 program!), then I discovered the holy graal - BeOS (Hi JLG!), and C++!!!
Back in 2002, while chating with one of my fellow co-worker I was told that "coding a visitor pattern is easier in JAVA than in C++" - this was not the start of another language war, and back at home I started coding a damn visitor pattern in C++: "well, what kind of stuff could be visited? Why not those primitive geometrical objects like point, line and circle?..."
Here again and it seems that this piece of code has its own will and doesn't whant to vanish... (So for the nickname Phenix!) Maybe it is time to share the code, the fun and its history?
BTW, if you are wondering "why Gambol"? - well maybe cauze the Phenix enjoys to gambol like a lamb...
|