4dview is an interactive program for displaying projections of 4-dimensional geometric objects on an Iris. It was designed specifically to be used as an external module for geomview.
The program works by reading in a text file specifying the geometry of the 4-D object, then sending a stream of 3-D projections of the object via standard output to geomview. The input file must contain the geometry of the object in one of the oogl formats (see OOGL objects). Typing the name of the input file into the space provided on the main panel, and clicking on load will bring the object up on the display.
In addition to the main panel, 4dview has three sub-panels containing features that allow the user to modify the projection and actual geometry of the object being viewed. The first and most frequently used panel is the projection panel which can be reached by clicking on the button of the same name in the main panel.
To change the projection, use the left and right mouse buttons while dragging across the 'Projection axis' controller on the projection panel. The left mouse adjusts the direction, and the right mouse adjusts the length, of the red segment. It extends from the origin to a point in the unit ball, and specifies a direction (a unit vector) in 4-space as follows: the vector's (x,y,z) components are those of the segment's tip, and its w component is chosen to form a unit vector in the positive w hemisphere. Here x extends rightward, y toward the viewer, z upward. So when the red segment has zero length, the projection axis is entirely in the w direction i.e. (0,0,0,1), and when it reaches the top of the ball, the projection axis is (0,0,1,0). The blue segments are perpendicular to the red axis, and reach to the surface of the ball. They're intended only as perspective cues, so altering their direction does not change the 4-D projection.
The speed at which the projection changes depends on the complexity of the object. One may also type in a new projection matrix explicitly, in the space provided. Clicking on the 'Default Projection' button will cause the projection matrix to revert to the identity matrix.
Another sub-panel is the features sub-panel. This panel is for when new features will be added to 4dview. At present the only additional feature is the capability of switching between two different projection schemes, Perspective and Orthogonal projection. Other features such as color control and perhaps animation will most likely be added here.
To facilitate understanding of the 4th-dimension in 4dview, vertices are associated with a particular color depending upon how far away they are from the projection hyperplane. Using smooth shading mode (see geomview) will allow one to see a gradient in color along the surface of the object. Vertices that are further away become redish while vertices that are nearer become blueish.
Beyond projection, the 4dview module also allows one to slice off part of an object with a hyperplane. This is useful in the case where one wants to see the inside of the object or get rid of irrelevant parts of the object. This slicing feature is available when one brings up the slicing sub-panel.
To control the orientation of the slicing hyperplane one drags across the 'Slicing plane axis' with the left or right mouse button or enters numbers into the provided spaces that explicitly define its orientation. To control the depth of the hyperplane one adjusts the 'Slice Depth' slider or enters a value into the depth value box.
As the position of the hyperplane changes, vertices which are on the side of the hyperplane being clipped are now colored white. This provides a rough idea of what will be gone when we actually slice. Clicking on the 'Flip' button will change the side of the hyperplane on which clipping is being performed. Clicking on the 'Slice' button will then perform the actual clipping.
Any changes to the geometry of the object produced by slicing can be saved by typing in the name of the file to store the changed object into, and then clicking on 'Store'. The stored object is always in the 4OFF format regardless of the format the object was originally stored in.
This is the first release of the program so there could be plenty. Please report any you may find to me.
Daeron Meyer email: daeron@geom.umn.edu The Geometry Center phone: (612) 626-8302 1300 South Second Street Minneapolis, MN 55454 Many thanks to Stuart Levy for the projection axis controller and considerable help in debugging this program. Also, thanks to Celeste Fowler for her tool which allows my program to be able to handle all oogl object file formats.