You are represented by a point which has freedom of movement in a three-dimensional environment. The world as viewed from your current position and orientation is displayed along with buttons which can be used to navigate the environment. This view is updated as you - or other people and objects - move around in the virtual environment. As you explore, you will find two types of objects: those that are fixed in place and those that you can push by bumping into them. Try interacting with the environment around you! |
Class Name | Purpose | Used by IXServer | Used by IXClient |
---|---|---|---|
ButtonConsole | Draws a bitmap of buttons and handles mouse input. Used for "Movement" and "Rotation" buttons. | No | Yes |
CollisionDetection | Performs collision detection for a point moving through a set of triangles or a triangle moving through a set of points. | Yes | Yes |
Environment | Contains a description of the current state of all objects (including clients) in an environment. | Yes | Yes |
IndexedLine | Representation of a line with end-points stored as indices into a separate array of points. | Yes | Yes |
IndexedObject | Representation of an object consisting of points, lines, and triangles with objects stored as indices into separate arrays of their respective type. | Yes | Yes |
IndexedTriangle | Representation of a triangle with end-points stored as indices into a separate array of points. | Yes | Yes |
IXClient | Main class for the client applet. Handles the user interface and the major functionality of the applet. | No | Yes |
IXClientConnection | Separate Thread which handles client-side communication with the server. | No | Yes |
IXClientInformation | Contains information about a client connection. | Yes | No |
IXClientRenderer | Separate Thread which handles all aspects of rendering the client's current view of the environment (including coordinate transformations, clipping, and drawing calls). | No | Yes |
IXClientScreen | Handles the z-buffered drawing of points, lines and polygons on a pixel-by-pixel basis. | No | Yes |
IXServer | Main class for the server application. Handles establishing new connections and provides shared methods for safe environment modification. | Yes | No |
IXServerConnection | Separate Thread which handles sending data to a client when necessary. | Yes | No |
IXServerConnectionReader | Separate Thread which handles reading data from a client and responding to it. | Yes | No |
IXServerTimer | Separate Thread which ensures that an event will occur every n seconds. | Yes | No |
PerspectiveTransform | Matrix for computing the perspective transformation of a point, TPERSP. | No | Yes |
Semaphore | Implementation of a binary semaphore for ensuring mutual exclusion and blocking. | No | Yes |
ThreePoint | Representation of a point in three-dimensional space (with double variables) as well as point operations. | Yes | Yes |
ThreeVector | Representation of a vector in three-dimensional space (with double variables) as well as vector operations. | Yes | Yes |
TwoPoint | Representation of a point in screen space (with int variables). | No | Yes |
ViewTransform | Matrix for computing the viewing transformation of a point, TVIEW. | No | Yes |