GLFX::ISceneBuilder Struct Reference

#include <glfx.h>

Inheritance diagram for GLFX::ISceneBuilder:

GLFX::Scene::DefaultSceneBuilder List of all members.

Detailed Description

A implementation of this interface is passed to any scene loading methods. DefaultSceneBuilder is a simple implementation of this interface that you may use or on which you may base your own implementation.


Public Types

enum  { NODE_SIMPLE = 0, NODE_STATIC_MESH, NODE_LIGHT, NODE_CAMERA }
enum  {
  VERT_POSITION = 0, VERT_NORMAL, VERT_COLOR, VERT_TEXTURE0,
  VERT_TEXTURE1, VERT_TEXTURE2, VERT_TEXTURE3, VERT_TEXTURE4,
  VERT_TEXTURE5, VERT_TEXTURE6, VERT_TEXTURE7
}
enum  { ANIM_POSITION = 0, ANIM_ROTATION, ANIM_SCALE }

Public Member Functions

virtual bool Initialize (EffectManager *fxMgr)=0
virtual bool Finalize ()=0
virtual int CreateNode (const char *nodeName, int type)=0
virtual int CreateMaterial (const char *materialName)=0
virtual int CreateAnimation (const char *animName)=0
virtual void SetNodeParentByName (int nodeId, const char *parentName)=0
virtual void SetNodeTM (int nodeId, const float *tm)=0
virtual void SetMeshParameters (int nodeId, GLenum primitiveType, unsigned long vertexCount, unsigned long indexCount, unsigned long primitiveGroupCount)=0
virtual bool SetMeshVertexData (int nodeId, unsigned long type, unsigned long dim, const float *data)=0
virtual bool SetMeshFaceIndices (int nodeId, const unsigned long *data)=0
virtual void SetMeshPrimitiveGroup (int nodeId, unsigned long groupId, unsigned long start, unsigned long count)=0
virtual void SetMeshMaterial (int nodeId, unsigned long groupId, int materialId)=0
virtual void SetLightColor (int nodeId, const float *color)=0
virtual void SetLightAttenuation (int nodeId, float attnStart, float attnEnd)=0
virtual void SetCameraFieldOfViewX (int nodeId, float fovx)=0
virtual void SetMaterialAmbientColor (int materialId, const float *color)=0
virtual void SetMaterialDiffuseColor (int materialId, const float *color)=0
virtual void SetMaterialSpecularColor (int materialId, const float *color)=0
virtual void SetMaterialSpecularLevel (int materialId, float level)=0
virtual void SetMaterialTransparency (int materialId, float transparency)=0
virtual void SetMaterialDiffuseMap (int materialId, const char *name)=0
virtual void SetMaterialGlossMap (int materialId, const char *name)=0
virtual void SetMaterialGlowMap (int materialId, const char *name)=0
virtual void SetMaterialBumpMap (int materialId, const char *name)=0
virtual void SetAnimationParameters (int animId, float startTime, float frequency, unsigned long frameCount)=0
virtual void SetAnimationNodeKeyframes (int animId, int nodeId, unsigned long type, float *data)=0


Member Enumeration Documentation

anonymous enum

Enumerator:
NODE_SIMPLE  simple node
NODE_STATIC_MESH  node with static mesh attached
NODE_LIGHT  node with light attached
NODE_CAMERA  node with camera attached

anonymous enum

Enumerator:
VERT_POSITION  vertex position
VERT_NORMAL  vertex normal
VERT_COLOR  vertex color
VERT_TEXTURE0  vertex texture 0 coordinates
VERT_TEXTURE1  vertex texture 1 coordinates
VERT_TEXTURE2  vertex texture 2 coordinates
VERT_TEXTURE3  vertex texture 3 coordinates
VERT_TEXTURE4  vertex texture 4 coordinates
VERT_TEXTURE5  vertex texture 5 coordinates
VERT_TEXTURE6  vertex texture 6 coordinates
VERT_TEXTURE7  vertex texture 7 coordinates

anonymous enum

Enumerator:
ANIM_POSITION  position animation
ANIM_ROTATION  rotation animation
ANIM_SCALE  scale animation


Member Function Documentation

virtual bool GLFX::ISceneBuilder::Initialize ( EffectManager fxMgr  )  [pure virtual]

Initialize scene builder.

Parameters:
fxMgr pointer to EffectManager
Returns:
true if successful

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual bool GLFX::ISceneBuilder::Finalize (  )  [pure virtual]

Finalize scene building.

After this method finishes the scene should be returned to user by some custom method.

Returns:
true if successful

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual int GLFX::ISceneBuilder::CreateNode ( const char *  nodeName,
int  type 
) [pure virtual]

Create a node.

Parameters:
nodeName name of node
type node type, on of: NODE_SIMPLE, NODE_STATIC_MESH, NODE_LIGHT NODE_CAMERA
Returns:
node identifier. -1 is returned on error. The node id is used in subsequent methods to refer to this node.

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual int GLFX::ISceneBuilder::CreateMaterial ( const char *  materialName  )  [pure virtual]

Create a material.

Parameters:
materialName name of material
Returns:
material identifier. -1 is returned on error. The material id is used in subsequent methods to refer to this material.

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual int GLFX::ISceneBuilder::CreateAnimation ( const char *  animName  )  [pure virtual]

Create named animation.

Parameters:
animName name of animation
Returns:
animation id

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetNodeParentByName ( int  nodeId,
const char *  parentName 
) [pure virtual]

Sets node parent.

This method is used to refer to parent by name. This is useful, when the input file doesn't require a parent node to be defined before it's children.

Parameters:
nodeId node id
parentName name of parent node

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetNodeTM ( int  nodeId,
const float *  tm 
) [pure virtual]

Sets node transform matrix.

Parameters:
nodeId node id
tm 16 float values representing rows of a 4x4 matrix.

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetMeshParameters ( int  nodeId,
GLenum  primitiveType,
unsigned long  vertexCount,
unsigned long  indexCount,
unsigned long  primitiveGroupCount 
) [pure virtual]

Sets mesh parameters: vertex, index and primitve group count.

Parameters:
nodeId node id
primitiveType OpenGL primitive type, like GL_TRIANGLES.
vertexCount number of vertices
indexCount number of indices
primitiveGroupCount number of primitive groups

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual bool GLFX::ISceneBuilder::SetMeshVertexData ( int  nodeId,
unsigned long  type,
unsigned long  dim,
const float *  data 
) [pure virtual]

Sets mesh vertex data.

Parameters:
nodeId node id
type data type, one of: VERT_POSITION, VERT_NORMAL, VERT_COLOR, VERT_TEXTURE0, VERT_TEXTURE1, VERT_TEXTURE2, VERT_TEXTURE3, VERT_TEXTURE4, VERT_TEXTURE5, VERT_TEXTURE6, VERT_TEXTURE7. Note that not all types may be supported by a given implementation. In such case this method will return false. However this is not an error.
dim data dimension
data pointer to data
Returns:
true if successful. This method returns false if the specified vertex data cannot be added. However this does not indicate an error, ISceneBuilder will continue undisturbed.

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual bool GLFX::ISceneBuilder::SetMeshFaceIndices ( int  nodeId,
const unsigned long *  data 
) [pure virtual]

Sets mesh index data.

Parameters:
nodeId node id
data vertex to indices
Returns:
false if index buffer is not supported.

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetMeshPrimitiveGroup ( int  nodeId,
unsigned long  groupId,
unsigned long  start,
unsigned long  count 
) [pure virtual]

Sets primitive group parameters.

Parameters:
nodeId node id
groupId number of primitive group to be modified
start first element of this group
count number of elements in this group

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetMeshMaterial ( int  nodeId,
unsigned long  groupId,
int  materialId 
) [pure virtual]

Sets mesh material.

Parameters:
nodeId node id
groupId primitive group id
materialId material id

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetLightColor ( int  nodeId,
const float *  color 
) [pure virtual]

Sets node light color.

Parameters:
nodeId node id
color 4-float light color value (red, green, blue and alpha)

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetLightAttenuation ( int  nodeId,
float  attnStart,
float  attnEnd 
) [pure virtual]

Sets light attenuation distance.

Parameters:
nodeId light node id
attnStart near attenuation distance. If this value is 0 near attenuation is disabled.
attnEnd far attenuation distance. If this value is 0 far attenuation is disabled.

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetCameraFieldOfViewX ( int  nodeId,
float  fovx 
) [pure virtual]

Sets camera horizontal field of view.

Parameters:
nodeId node id
fovx field-of-view in degrees

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetMaterialAmbientColor ( int  materialId,
const float *  color 
) [pure virtual]

Sets material amibent color.

Parameters:
materialId material id
color 4-float color value (red, green, blue and alpha)

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetMaterialDiffuseColor ( int  materialId,
const float *  color 
) [pure virtual]

Sets material diffuse color.

Parameters:
materialId material id
color 4-float color value (red, green, blue and alpha)

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetMaterialSpecularColor ( int  materialId,
const float *  color 
) [pure virtual]

Sets material specular color.

Parameters:
materialId material id
color 4-float color value (red, green, blue and alpha)

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetMaterialSpecularLevel ( int  materialId,
float  level 
) [pure virtual]

Sets material specular level (exponent).

Parameters:
materialId material id
level specular level

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetMaterialTransparency ( int  materialId,
float  transparency 
) [pure virtual]

Sets material transparency.

Parameters:
materialId material id
transparency transparency level: set to 0 for totally opaque materials, 1 totally transprent or any value in between

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetMaterialDiffuseMap ( int  materialId,
const char *  name 
) [pure virtual]

Sets material diffuse texture.

Parameters:
materialId material id
name texture file name

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetMaterialGlossMap ( int  materialId,
const char *  name 
) [pure virtual]

Sets material gloss (specular) texture.

Parameters:
materialId material id
name texture file name

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetMaterialGlowMap ( int  materialId,
const char *  name 
) [pure virtual]

Sets material glow (self-illumination) texture.

Parameters:
materialId material id
name texture file name

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetMaterialBumpMap ( int  materialId,
const char *  name 
) [pure virtual]

Sets material bump (normal) texture.

Parameters:
materialId material id
name texture file name

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetAnimationParameters ( int  animId,
float  startTime,
float  frequency,
unsigned long  frameCount 
) [pure virtual]

Sets animation parameters.

Parameters:
animId animation id
startTime time of first frame (in seconds)
frequency frame rate (in 1/second)
frameCount number of frames in animation

Implemented in GLFX::Scene::DefaultSceneBuilder.

virtual void GLFX::ISceneBuilder::SetAnimationNodeKeyframes ( int  animId,
int  nodeId,
unsigned long  type,
float *  data 
) [pure virtual]

Sets node animation track.

Parameters:
animId animation id
nodeId node id of animated node
type track type, one of ANIM_POSITION, ANIM_ROTATION or ANIM_SCALE.
data animation track data. Array of n-dimensional tuples of floats where n is 3 (ANIM_POSITION, ANIM_SCALE) or 4 (ANIM_ROTATION). Number of tuples is equal to frame number. Each tuple specifies transformation for a single frame.

Implemented in GLFX::Scene::DefaultSceneBuilder.


The documentation for this struct was generated from the following file:
SourceForge.net Logo