Index of /~farrell/cg05/progs/angel

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory   -  
[TXT]Makefile 2005-09-13 13:50 583  
[TXT]Makefile.cygwin 2005-09-08 02:55 604  
[TXT]Makefile.linux 2005-09-08 02:55 578  
[TXT]Makefile.orig 2005-09-08 02:54 502  
[IMG]Makefile.sgi 2005-09-08 02:55 517  
[TXT]bteapot.c 2005-09-08 02:55 2.3K 
[TXT]contour2.c 2005-09-08 02:55 4.4K 
[   ]core.1779 2005-11-29 19:21 10M 
[   ]cube 2005-09-13 13:38 8.8K 
[TXT]cube.c 2005-09-08 02:55 3.2K 
[   ]cubes 2005-09-13 13:38 8.6K 
[TXT]cubes.c 2005-09-08 02:55 2.0K 
[TXT]cubev.c 2005-09-08 02:55 3.0K 
[TXT]cubeview.c 2005-09-08 02:55 3.3K 
[TXT]cubevs.c 2005-09-08 02:55 3.1K 
[   ]demo2 2005-09-13 13:43 9.8K 
[TXT]demo2.c 2005-09-13 13:44 4.2K 
[TXT]dynamic.c 2005-09-08 02:55 12K 
[TXT]figure.c 2005-09-08 02:55 7.8K 
[TXT]figuretree.c 2005-09-08 02:55 12K 
[   ]gasket 2005-09-13 13:38 7.0K 
[TXT]gasket.c 2005-09-08 02:55 1.9K 
[   ]gasket2 2005-09-13 19:08 7.3K 
[TXT]gasket2.c 2005-09-13 19:08 1.5K 
[   ]gasket3 2005-09-13 18:30 7.2K 
[TXT]gasket3.c 2005-09-13 18:30 1.5K 
[   ]gasket3a 2005-09-13 18:30 7.8K 
[TXT]gasket3a.c 2005-09-13 18:30 2.1K 
[   ]gasket3d 2005-09-13 13:51 7.8K 
[TXT]gasket3d.c 2005-09-13 13:49 2.0K 
[   ]gasket3m 2005-09-13 18:53 7.7K 
[TXT]gasket3m.c 2005-09-13 18:53 1.9K 
[   ]gasket3md 2005-09-13 18:53 7.7K 
[TXT]gasket3md.c 2005-09-13 18:51 1.9K 
[   ]mandelbrot 2005-09-13 14:05 8.4K 
[TXT]mandelbrot.c 2005-09-08 02:55 3.1K 
[   ]newpaint2 2005-09-13 19:35 14K 
[TXT]newpaint2.c 2005-09-13 19:35 8.3K 
[TXT]newpaint2.c.orig 2005-09-13 19:35 8.3K 
[TXT]patches.h 2005-09-08 02:55 2.4K 
[   ]programs.tar 2005-09-08 02:55 120K 
[TXT]robot.c 2005-09-08 02:55 3.7K 
[   ]single_double 2005-09-13 13:40 8.4K 
[TXT]single_double.c 2005-09-08 02:55 2.2K 
[   ]sphere 2005-11-07 17:58 9.7K 
[TXT]sphere.c 2005-09-08 02:55 4.3K 
[   ]square 2005-09-13 19:30 7.9K 
[TXT]square.c 2005-09-13 19:30 2.3K 
[TXT]teapot.c 2005-09-08 02:55 14K 
[   ]tetra 2005-09-13 19:10 8.5K 
[TXT]tetra.c 2005-09-13 19:10 2.5K 
[   ]tetrapf 2005-09-13 19:54 9.0K 
[TXT]tetrapf.c 2005-09-13 19:54 3.1K 
[TXT]tetrapf2.c 2005-09-27 00:37 3.3K 
[   ]trackball 2005-10-11 20:22 9.9K 
[TXT]trackball.c 2005-10-11 20:18 4.2K 
[TXT]vertices.h 2005-09-08 02:55 6.7K 

This directory includes the programs from Angel: Interactive Computer Graphics,
Addison-Wesley, Second Edition, 2000 as listed in Appendix A and other
programs referred to in the text.  All are in the tar file programs.tar. 

The Makefile can be used on most standard SGI installations. It should require
only slight modification for other linux and unix installations.

The programs that follow use the GLUT library for interfacing with
the window system. The naming of the functions follow
the OpenGL Programmer's Guide and  the GLUT Users Guide.
These programs share much of the same code. You should find functions,
such as the reshape callback, the initialization function, and the main
function, almost identical across the programs. Consequently, only
the first instance of each function contains extensive comments.

In all these programs, illustration of graphical principles, other than
efficiency, was the most important design criteria. You should find
numerous ways both to extend these programs and to make them
run more efficiently. In some instances, the same visual results can be
generated in a completely different manner, using OpenGL capabilities
other than the ones we used in the sample program.

______________________________

Programs with listings in Appendix A:

gasket.c: A program that generates 5000 points on the Sierpinski gasket
using randomly selected vertices from Section 2.7

gasket2.c: Generates the Sierpinski gasket by recursive subdivision. The
depth of recursion is entered as a command line argument.

gasket3.c: Generates the Sierpinski gasket by recursive subdivision. 

gasket3m.c: Version of gasket3.c with mouse interaction to stop redrawing.
gasket3md.c: Double buffered version of gasket3m.c
These allow demonstartion of effects of application redraw on various window 
actions such as occluding by another window, moving etc.


gasket3d.c: Three-dimensional version of gasket.c. Uses the mouse
to start (left button) and stop (middle button) the generation of
points. The right button exits the program.

tetra.c: Three-dimensional version of gasket2.c.

tetrapf.c: tetra.c with a menu to choose the number of subdivisions. (Paul Farrell)

square.c: A program that illustrates the use of mouse with GLUT, as
discussed in Section 3.5. Note as compared to the book, this program
has a display routine added to it that is required by GLUT3.0.

newpaint2.c:  Possibly The simple paint program developed in Chapter 3.

single_double.c: Program demonstrates both single and double
buffering using two windows. Rotation can be started and
stopped with the mouse.

cube.c: The rotating--cube program from Chapter 4.

cubev.c: Rotating cube using vertex arrays.

demo2.c: Rotating cube with virtual trackball.

cubeview.c: The walk--through program from Chapter 5.

sphere.c: The program that generates approximations to a sphere
by recursive subdivision generation from Chapter 6.

____________________________________________

Other programs referred to in the book.

cubes.c: Shadow generation using projection from Chapter 5.

cubevs.c: Same as cubes.c but uses vertex arrays.

robot.c: A program that moves the  simple robot from Chapter 8.

figure.c: Program that moves the figure from Chapter 8.

figuretree.c: Same as figure.c bvut using static nodes and
a general traversal algorithm

dynamic.c: Same as figuretree.c but uses dynamic nodes.

teapot.c: A program that generates approximations to  the Utah teapot by
recursive subdivision as discussed in Chapter 10. File teapot.data
contains the vertex data.

bteapot.c: Generates shaded teapot using OpenGL evaluators. 
Data for vertices is in vertex.h and for patches on patches.h

mandelbrot.c: A program that generates approximations to the Mandelbrot
set as discussed in Chapter 11.

contour2.c: Contour generating program from Chapter 12.

mandelbrot.c: Mandlebrot set generation program from Chaper 11.