#include <PhxGraphicsEngine.h>
Inheritance diagram for Phx::GraphicsEngine:

Public Member Functions | |
| virtual Ptr< MeshInterface > | newMeshInterface (const String &meshName)=0 |
| virtual Ptr< MeshInterface > | newMeshInterface (const Ptr< const MeshDescription > &description)=0 |
| virtual Ptr< MaterialInterface > | newMaterialInterface (const String &materialName)=0 |
| virtual Ptr< MaterialInterface > | newMaterialInterface (const Ptr< const MaterialDescription > &description)=0 |
| virtual Ptr< Geometry > | newGeometry (void)=0 |
| virtual Ptr< Geometry > | newGeometry (const Ptr< const GeometryDescription > &description)=0 |
| virtual Ptr< Camera > | newCamera (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 |
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.
1.4.2