Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

Phx::GraphicsEngine Class Reference

The graphics engine interface that exports basic, programatically controllable features. More...

#include <PhxGraphicsEngine.h>

Inheritance diagram for Phx::GraphicsEngine:

Phx::NamedInterface Phx::LockedPtrInterface< NamedInterface > List of all members.

Public Member Functions

virtual Ptr< MeshInterfacenewMeshInterface (const String &meshName)=0
virtual Ptr< MeshInterfacenewMeshInterface (const Ptr< const MeshDescription > &description)=0
virtual Ptr< MaterialInterfacenewMaterialInterface (const String &materialName)=0
virtual Ptr< MaterialInterfacenewMaterialInterface (const Ptr< const MaterialDescription > &description)=0
virtual Ptr< Geometry > newGeometry (void)=0
virtual Ptr< Geometry > newGeometry (const Ptr< const GeometryDescription > &description)=0
virtual Ptr< CameranewCamera (const String &cameraName)=0
virtual String currentCamera (void) const =0
virtual void currentCamera (const String &cameraName)=0

Static Public Attributes

static const NamedInterface::Type INTERFACE_TYPE
static const String INTERFACE_TYPE_NAME
static const NamedInterface::Identifier GRAPHICS_ENGINE_IDENTIFIER
static const String GRAPHICS_ENGINE_NAME

Classes

class  Camera
 A camera in the graphics engine. More...
class  Geometry
class  LightDescription
 A description of a light source in the graphics engine. More...
class  MaterialDescription
 A description of a surface material. More...
class  MaterialInterface
 An interface that connects to a material within the graphics engine. More...
class  MeshDescription
 A Description representing a raw 3D mesh. More...
class  MeshInterface
 An interface that connects to a mesh within the graphics engine. More...
class  Node

Detailed Description

The graphics engine interface that exports basic, programatically controllable features.

Not all features will be presented in the public interface. Many may only be accessible depending on the configuration file(s) for the graphics engine implementation and/or the individual meshes and materials in the engine's native format.

The graphics interface does not define a mesh or material format. It only defines a basic interface through which one may set or get basic properties of a mesh or material. The rest of the their properties, which may specify additional behavior known only to the particular underlying engine, are stored in native files. One can specify which of these native files to use, but cannot determine their contents or change them. This is left to content producers who will adjust the native files for each potential engine appropriately.

The graphics engine provides interfaces to manipulate its internal state, which is comprised of the usual suspects: cameras, geometry, lights, materials, and other elements needed to display the scene. One acquires an interface to instances of these elements of the engine's state via the GraphicsEngine interface. Once an interface for an element is created, that element can be referenced by name in other parts of the engine. e.g., one could set up a material using a MaterialInterface, and then set up a Geometry interface that uses the material by setting the material's name in the Geometry interface.

The engine views its scene state (that is, the cameras, lights, and geometry that make up a scene) as a scene graph, composed of Node interfaces. Geometry, Camera, PointLight, are examples of this interface. A client can construct these interfaces, which will create corresponding elements inside the graphics engine. The client can also attach these interfaces to each other by pointer to build the hierarchy that is the scene graph.


The documentation for this class was generated from the following file:
Generated on Wed Dec 21 22:05:38 2005 for Phoenix OSFS by  doxygen 1.4.2