[plt-scheme] graphics states and Scheme
On 04/07/07, Dave Griffiths <dave at pawfal.org> wrote:
> (push) ; push the state stack
> (translate (vector 0 1 0)); move up in y axis by 1
> (build-cube) ; makes a red rotated cube, translated up by 1
> (pop) ; pop the state stack
<snip>
> (grab mycube) ; following commands now set to mycube's state
> (rotate (vector 1 0 0)) ; rotate it a bit in the x axis
> (ungrab) ; grabs can be nested
First thing I did when I started using opengl in scheme was eliminate
this sort of explicit parenthesizing. I found it really ugly, because
if we are using these hordes of parentheses anyways, we may as well
leverage them for all they're worth. Compare:
(push)
(translate (vector 0 1 0))
(build-cube)
(pop)
vs.:
(pushed
(translate (vector 0 1 0))
(build-cube))
This also helps prevent problems which would be caused by unmatched
push and pop calls. The indentation will also improve readability with
nested calls. Just my $0.02. =)
Hope this helps,
Henk Boom