Hi!
I've managed to open a GLUT window from Maxima and use OpenGL drawing
from Common Lisp. Of course it's nothing special, but it might be
interesting for developing Maxima's native plotting solution.
It's done by CFFI (so no GCL support I fear..) and cl-opengl. It
doesn't require any compiled libraries (the whole thing is in Common
Lisp) except from opengl and glut, which are usually provided on
every today's desktop system.
A maxima command can open a window, perform opengl drawing and more.
Nice rotating 3d plots could be done this way. Also opengl's
rasterization is very fast and easy on the CPU (it's done on the
graphics card) so the CPU can be utilized for computation - small (or
big) interactive applications can be developed this way (think
Mathematica's Manipulate[])...
To export the drawings into PDF there are two solutions - one is a
small C library called gl2ps which would have to be compiled for each
platform ofcourse, and distributed with maxima, the other is by using
a Common Lisp native solution cl-pdf. In the first case, one uses the
same code for displaying graphics on screen as for writing it into a
pdf file, while the second case requires separate code or a common
abstraction layer which then transforms abstract calls into opengl
calls or cl-pdf calls...
It's some work to write a plotting system, but perhaps it's easier to
do it in Common Lisp than in other languages. There are also a lot of
open source plotters on the web, which can be of guidance...
If anyone is interested I can send him the code (works here on SBCL,
but it should on all cffi supported lisps)..
Regards,
Ziga