home *** CD-ROM | disk | FTP | other *** search
- 3D Wire-Frame Object Editor
-
- USER DOCUMENTATION
-
- Index:
- 1) Overview
- 2) Using the System
- 3) Creating an Object
-
- 1) Overview
- The 3D wire frame editor is useful for creating wire frame
- objects which may be manipulated in 3 dimensions. A wire frame
- object may be described by a set of vertices (points) connected
- by a set of edges (lines). Each point is described by a set of
- coordinates (x,y,z) representing its position in three space.
- Each edge is described by a set (v1,v2) of the vertices which it
- connects. Designing a wire frame object by entering the lists of
- vertices and edges is a tedious process. This program simplifies
- the design process by allowing the user to enter the wire frame
- object interactively; a picture of the object is drawn in a
- window on the viewscreen, while points and vertices are entered
- into the object by placing them in the picture using the mouse.
-
- One of the major limitations in using a computer to design three
- dimensional objects is the two-dimensional screen, which makes
- the perception of depth difficult for the user. Additionally, the
- user may wish to view the object from a variety of angles, and to
- scale in or out on certain sections for closer study. This
- program uses a number of techniques to help the user. Firstly,
- the object is projected on the screen using 'perspective
- projection', in which objects appear to become smaller and
- parallel lines converge as they recede into the distance. For
- many objects, this gives an important visual cue as to where
- things are. Secondly, the program allows real-time rotation of
- the object around the x, y, and z axes, in addition to scaling
- and translation (movement) of the object in the window. Finally,
- an option is provided to display a red-green stereo image which,
- when used with special 3d 'movie' glasses, gives the illusion of
- a three dimensional view. Note: at the time of this writing, the
- 3d mode still has bugs, so it might not work correctly.
-
- 2) Using the System
- To start up the program, type "3d" at the CLI prompt, or
- select the 3d icon by double clicking on it with the left mouse
- button. To run the program as a subtask from the CLI, remember
- to type "run 3d". In any case, a new screen will appear, and two
- windows will appear on top of it. To get back to the workbench,
- or to any other programs running concurrently on other screens,
- either a) pull down the screen dragging down on the screen title
- bar with the left mouse button, b) select the below gadget in the
- upper right corner of the screen to send the screen to the
- bottom, or c) hit the 'LeftAmiga'-'n' keys. To exit the system,
- select the close gadget at the upper left corner of the control
- panel window.
-
- The Object Window
- One of the windows on the screen is labeled 'Object Window'.
- The object will be displayed in this window. Note that it has
- a resize gadget in the lower right corner. This can be used
- to resize the window to fill the whole screen, if desired. When
- the window is resized, the object within it will be redrawn in a
- new size. The small bright dot in the center of the window is
- known as the 'marker'. The marker is used to position or select
- the vertices and edges of an object being rendered.
-
- The Control Panel
- The other window on the screen is labeled 'Control Panel'.
- Most of the commands to the system will be made by selecting the
- gadgets in this window. To select a gadget, place the mouse
- cursor over it and press the left mouse button. The set of move
- gadgets is used to position the marker in the object window. The
- rotate, scale, and translate gadgets are used to alter the
- appearance of the object within the object window. Place and
- Remove vertex are used to add and delete vertices from the
- object, while Place and Remove edge do the same for edges. The
- group commands may be used to define subsets of an object upon
- which an operation will take effect. Notice that the title bar in one of the windows will be clear,
- while the other will be 'ghosted' over. The former window is the
- 'active' window. To activate a window, place the mouse anywhere
- within its body and click with the left mouse button. Note that
- by clicking on the screen background, both windows are made
- inactive.
-
- The Menu System
- With either of the windows activated, now press down on the
- right mouse button. A menu strip will now appear at the top of
- the screen. Without letting up on the right button, move the
- mouse cursor to the top of the screen above one of the menu
- titles. A small window will now drop down, listing a set of
- commands which are accessible through that menu. To select a
- command, now move the mouse pointer down until that command is
- highlighted and release the right mouse button. The first menu on
- the left is used to save and load objects or subobjects. The
- second menu is used to toggle on or off program options, such as
- stereo display. The third menu is a clear menu, which has
- commands to clear the current object from menu and to clear the
- current grouping set. The fourth menu is a debug menu used to
- dump information about the internal status of variables to the
- CLI from which the program was started; this output may be
- redirected to a file using the standard '>' character on the
- command line. This menu will only appear if the '-d' option is
- appended to the command line invoking the program.
-
- 3) Creating an Object
- Creating objects consists of placing vertices and drawing lines
- between them. To place a vertex, move the marker to the position in
- which you want it placed using the move gadgets. Then press the place
- vertex gadget to place a vertex at the current vertex position. Note
- that the current vertex position in NDC space is displayed in the
- upper left hand corner of the object window; this can be turned of with
- the Coords Off option on the Options menu. To draw an edge between
- two vertices, place the marker near to the first vertex, and press
- the place edge gadget. The vertex which is currently closest to the
- marker will be highlighted to signify which vertex the command will
- operate on. Now move the marker near to the second vertex and press
- the place edge gadget again. Notice that as the marker is moved away
- from the first vertex, a line is drawn between it and the first
- marker, and when the place edge gadget is selected the second time,
- the endpoint of this line is transferred from the marker to the vertex.
- To delete a vertex, place the marker near to it, and select the
- remove vertex gadget. The vertex will disappear, along with all
- lines connected to it. To delete an edge, place the marker near
- to one of the vertices at the end of the line, and hit the
- remove edge gadget. This vertex will now become hilighted. Now
- move the cursor to the other vertex on the line, and hit remove
- edge again; the line between the vertices will now disappear.
-
- Grouping Subobjects
- A 'group' is a set of points and vertices which are a subset of
- the object being displayed. To add a vertex to the group, move
- the marker near to the vertex and select the add to group gadget.
- To delete a vertex from the group, move the marker near to it and
- select the remove from group gadget. Edges may not be explicitely
- added to or deleted from a group, but information about edges
- which connect members of the group is kept by the program. A
- group may be manipulated independently of the main object by
- turning on the group option on the options menu. With this option
- enabled, all the rotation, translation, and scale operations will
- take effect on the group only. Groups may be saved or loaded from
- disk using the save/load items on the file menu with the Group
- option enabled on the Options menu. Note that the format of a
- saved group is identical to that of a saved object, so that
- libraries of objects may be stored on disk and read in as groups
- to be placed in a scene.
-
- Transforming Objects
- To transform the object in memory, hold down the gadget associated
- with that transform. The object will be transformed as long as the gadget is
- held down. For instance, to rotate the object around the x axis, select
- either the 'up-arrow' or 'down-arrow' gadget under the set of rotation
- gadgets. As long as the gadget is held down, the object will continue to
- rotate. Optionally, if you click down on any transformation gadget, and
- then remove the mouse pointer from the gadget before you release, the
- gadget will remain activated until you click down on it again.
-
- Disk Operations
- Before executing any disk operations, you must enter the filename
- you wish program to use by clicking on the file gadget with the mouse,
- entering the filename, and hitting return. The Save and Load menu items
- will use this filename to read or write information to system devices.
- Normally, Load will clear any previous objects from memory and load a new
- object from disk. However, with the Group option enabled, new objects
- may be read in from disk without destroying any objects already in memory.
- Save will normally save all objects in memory, but with the group option
- enabled, it will only save those vertices belonging to the group, and will
- only save those edges which connect two vertices in the group.
-
- Hints
- The filename gadget will accept any logical device as a filename;
- specifically, the console window descriptor '*' is valid. Thus, by entering
- an asterisk as the filename, one can enter information directly from the
- console selecting the load menu item, escaping back to the workbench
- screen, and typing the data into the window under which 3d is running
- as a task. The data format is:
- x y z
- .
- .
- .
- *
- i j
- .
- .
- .
- *
- where x, y, and z are real coordinates of vertices, and i,j are indices
- into the coordinates describing edges. For example, to enter a square,
- type:
- 0.25 0.25 0.0
- 0.25 0.75 0.0
- 0.75 0.75 0.0
- 0.75 0.25 0.0
- *
- 0 1
- 1 2
- 2 3
- 3 0
- *