Cmpe 460
Computer Graphics

Term Project Requirements

Basic GFX Layer should be compleletly independent of the Application layers containing no application specific class. A list of possible classes that should be in this layer are: Scene3D, GfxObject3D, Geometry3D, Camera3D (camera position and parameters), Light3D (light position and parameters), Transform3D (translation, rotation,scaling parameters), Vector3D. Note that this is not an exhastive list, you can have others.

Extended Basic GFX Layer should contain a class to build complex objects composed of more than one GFXObject3D that is a Composite3D. This class should provide editing capabilities to add/delete parts to a composite. Alignment, snapping, auto placement, systematic duplication should be provided at this layer. A hiererchical organisation should be utilised to cope with composite,its parts and its sub-parts. See PDF doc.

Extended Basic GFX Layer can also contain face and vertex editing capabilities as shown in the PDF doc.

Below is a simple example code showing direct use of a Basic GFX layer. Note that in your projects the application layer classes should use these capabilities.

Scene3D classRoom;
BasicGeometry3D cube:
BasicGeometry3D cylinder;
..
Transform3D tableTopTransform(..),
Transform3D tableLeg1Transform(..);

cube.init("vrmlfile", "cube1");
cylinder.init(..);

Object3D& tableTop = classRoom+=(cube);
Object3D& tableLeg1 = classRoom+=(cylinder);

classRoom.draw();

// Scale the table top slightly, and move the table to a new position in the class room.

tableTop.scale(..); //modify the scaling parameters

tableTop.translate(..); // modify the translation parameters

tableLeg1.translate(..);
classRoom.draw();