RoffView Source Code Readme File (ReadMeJ.txt) July 11th, 2004 Ryan Holmes File: JRoffView_3_1_Source.zip Contents: Java source code for the Java version of my program RoffView The original version of RoffView was written for a class at Arizona State University, CSE470 - Introduction to Computer Graphics, when I took it in the Fall of 2000. The program has been on my RoffView webpage (Now at http://www.holmes3d.net/graphics/roffview/) since that time. The source code for that original version, which was written in Visual C++ 6.0 using MFC, can now be found on the RoffView webpage. RoffView is Ryan's Off Viewer. It reads 3D graphics files in the OFF format, and displays them. A sample OFF file that I created by hand is included in this zip file. Many others, and other tools for dealing with them, can be found on the RoffView page given above. In the winter of 2000/2001 I ported the original version of RoffView to Java. Over the following year I extended its functionality a bit, until I began using OpenGL and moved back to C++. The source code for the current Java version of RoffView is what is contained in this archive. I am no longer actively working on this program, although I would not mind adding new requested features if time and interest permit. You are free to copy/modify/change/fix/break the code as you see fit. If you find it especially helpful, I would appreciate a quick e-mail telling me what you've done with it. If/when you find bugs, if you e-mail me the bug and the fix, I will update the source and this file and give you credit for the fix. -Ryan Holmes ryan at holmes3d dot net Version History: Java Version 3.1 - Modified display to use the entire window, instead of the largest square that fit within the window. Fixed bug where editing in wireframe mode could not find the correct point to edit. Cleaned up code for release. (First source release. July 2004) Java Version 3.0 - Added ability to export the current image to a PostScript format file. This works only when running as a stand-alone application, not as an applet. Also cleaned up some utility code and tweaked the lighting dialog to display numerical values for settings in tooltips. (December 2001) Java Version 2.8 - Added a wireframe with hidden lines removed viewing mode. It uses a simplistic method of hidden line removal, painting each triangle from the tessellation in the background color, then drawing its outline. It thus has more lines than the pure wireframe display, which uses the edges from the model's definition only. Also added a "near plane" culling (not clipping) for shaded and hidden lines removed wireframe modes, so that triangles behind or a little bit in front of the viewing point are not painted. This allows going inside models, to some extent. Because the depth is based on the entire triangle this culling will fail for very large triangles, very skinny ones, or otherwise non-regular models. (November 2001) Java Version 2.7b - Cleaned up the applet window handling to account for having multiple windows, so that both go away when RoffView is exited when run as an applet. (November 2001) Java Version 2.7 - Added 3D clipping to wireframe displays, as the Java VM's 2D clipping was overflowing and locking the VM. Re-wrote 3D transformations slightly for speed. Added an Observer tool, that shows a second perspective of the current model with a graphical representation of the viewing model of the main window. (November 2001) Java Version 2.6 - Added anti-aliasing in wireframe display. Re-wrote unique edge determination for faster load times. Fixed a bug with the selection of a point to edit in edit mode. Cleaned up some of the code. (November 2001) Java Version 2.5 - Added ability to run as an applet. (June 2001) Java Version 2.0 - Direct port of C++ version 2.1, addition of alpha-transparency support. (January 2001)