Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

Scene Class Reference

Classe de lecture d'un fichier XML de scene. More...

#include <Scene.h>

Inherits CExpatImpl< Scene >.

List of all members.

Public Member Functions

 Scene (const char *filename)
 Cree une scene a partir d'un fichier de scene.
vector< char * > getHeightmapsNames ()
 Renvoie la liste des heightmaps de la scene.
unsigned int getSizeX ()
 Renvoie le nombre de heightmaps de la scene selon X.
unsigned int getSizeY ()
 Renvoie le nombre de heightmaps de la scene selon Y.
unsigned int getNbPatchX ()
 Renvoie le nombre de patchs du terrain selon X.
unsigned int getNbPatchY ()
 Renvoie le nombre de patchs du terrain selon Y.
float * getSunPosition ()
 Renvoie la position du soleil pour la scene.
void OnStartElement (const XML_Char *pszName, const XML_Char **papszAttrs)
 Fonction de parsing d'une balise.
void OnEndElement (const XML_Char *pszName)
 Callback indiquant la fermeture d'une balise.

Static Public Member Functions

static void initStates ()
 Initialise la liste des etats du parser.

Private Member Functions

void onEnter__Scene (const XML_Char **papszAttrs)
 Fonction de lecture de la balise <scene>.
void onEnter__AllowedShaders (const XML_Char **papszAttrs)
 Fonction de lecture de la balise <allowedshaders>.
void onEnter__Shader (const XML_Char **papszAttrs)
 Fonction de lecture de la balise <shader>.
void onEnter__ForceTexture (const XML_Char **papszAttrs)
 Fonction de lecture de la balise <forcetexture>.
void onEnter__Terrain (const XML_Char **papszAttrs)
 Fonction de lecture de la balise <terrain>.
void onEnter__OnLatitude (const XML_Char **papszAttrs)
 Fonction de lecture de la balise <onlatitude>.
void onEnter__OnLongitude (const XML_Char **papszAttrs)
 Fonction de lecture de la balise <onlongitude>.
void onEnter__File (const XML_Char **papszAttrs)
 Fonction de lecture de la balise <file>.
void onEnter__Sun (const XML_Char **papszAttrs)
 Fonction de lecture de la balise <sun>.

Static Private Member Functions

static void addState (const char *name, unsigned int enterState, unsigned int ownState, unsigned int endState, void(*action)(void *, const XML_Char **))
 Fonction d'ajout d'un etat au parser.
static void stat_onEnter__Scene (void *obj, const XML_Char **papszAttrs)
 Callback de lecture de la balise <scene>.
static void stat_onEnter__AllowedShaders (void *obj, const XML_Char **papszAttrs)
 Callback de lecture de la balise <allowedshaders>.
static void stat_onEnter__Shader (void *obj, const XML_Char **papszAttrs)
 Callback de lecture de la balise <shader>.
static void stat_onEnter__ForceTexture (void *obj, const XML_Char **papszAttrs)
 Callback de lecture de la balise <forcetexture>.
static void stat_onEnter__Terrain (void *obj, const XML_Char **papszAttrs)
 Callback de lecture de la balise <terrain>.
static void stat_onEnter__OnLatitude (void *obj, const XML_Char **papszAttrs)
 Callback de lecture de la balise <onlatitude>.
static void stat_onEnter__OnLongitude (void *obj, const XML_Char **papszAttrs)
 Callback de lecture de la balise <onlongitude>.
static void stat_onEnter__File (void *obj, const XML_Char **papszAttrs)
 Callback de lecture de la balise <file>.
static void stat_onEnter__Sun (void *obj, const XML_Char **papszAttrs)
 Callback de lecture de la balise <sun>.

Private Attributes

vector< heightMapInfoPtrheightMaps
 Liste des definitions de heightmaps du fichier.
vector< sceneShaderInfoPtrsceneShaders
 Liste des definitions de shaders utilisables du fichier.
unsigned int nbPatchX
 Nombre de patches selon X pour le terrain de la scene.
unsigned int nbPatchY
 Nombre de patches selon Y pour le terrain de la scene.
unsigned int loaderState
 Etat du parser.
unsigned int sizeX
 Nombre de heightmaps selon X definies dans la scene.
unsigned int sizeY
 Nombre de heightmaps selon Y definies dans la scene.
float sunPosition [3]
 Position du soleil definie dans le fichier.
sceneShaderInfoPtr currentSsi
 Structure d'informations courante sur un shader en cours de lecture.
unsigned int currentLat
 Latitude courante des heightmaps en cours de lecture.
unsigned int currentLatSide
 Cote de latitude courant des heightmaps en cours de lecture.
unsigned int currentLong
 Longitude courante des heightmaps en cours de lecture.
unsigned int currentLongSide
 Cote de longitude courant des heightmaps en cours de lecture.

Static Private Attributes

static map< const char *,
stateInfoPtr, ltstr
states
 Liste des etats du parser.


Detailed Description

Classe de lecture d'un fichier XML de scene.

Cette classe lit un fichier XML de scene en parsant le fichier balise par balise. Pour cela, la classe se comporte comme une machine a etat, avec pour chaque etat une fonction definie permettant de lire la balise et de stocker les donnees lues. Pour ajouter une balise dans le fichier, il suffit juste d'ajouter une fonction correspondante et de definir cet etat.


Constructor & Destructor Documentation

Scene::Scene const char *  filename  ) 
 

Cree une scene a partir d'un fichier de scene.

Parameters:
filename Nom du fichier de scene a lire.


Member Function Documentation

void Scene::addState const char *  name,
unsigned int  enterState,
unsigned int  ownState,
unsigned int  endState,
void(*)(void *, const XML_Char **)  action
[static, private]
 

Fonction d'ajout d'un etat au parser.

Parameters:
name Nom de la balise correspondante.
enterState Etat d'arrivee possible.
ownState Etat courant.
endState Etat suivant.
action Action a effectuer pour la lecture de la balise.

vector< char * > Scene::getHeightmapsNames  ) 
 

Renvoie la liste des heightmaps de la scene.

Returns:
Liste des heightmaps de la scene, ordonnees par ligne puis par colonne.

unsigned int Scene::getNbPatchX  )  [inline]
 

Renvoie le nombre de patchs du terrain selon X.

Returns:
Nombre de patchs du terrain selon X.

unsigned int Scene::getNbPatchY  )  [inline]
 

Renvoie le nombre de patchs du terrain selon Y.

Returns:
Nombre de patchs du terrain selon Y.

unsigned int Scene::getSizeX  )  [inline]
 

Renvoie le nombre de heightmaps de la scene selon X.

Returns:
Nombre de heightmaps de la scene selon X.

unsigned int Scene::getSizeY  )  [inline]
 

Renvoie le nombre de heightmaps de la scene selon Y.

Returns:
Nombre de heightmaps de la scene selon Y.

float* Scene::getSunPosition  )  [inline]
 

Renvoie la position du soleil pour la scene.

Returns:
Position du soleil pour la scene.

void Scene::initStates  )  [static]
 

Initialise la liste des etats du parser.

Cette fonction doit etre appelee avant toute lecture de fichier de scene.

void Scene::OnEndElement const XML_Char *  pszName  ) 
 

Callback indiquant la fermeture d'une balise.

Parameters:
pszName Nom de la balise.

Reimplemented from CExpatImpl< Scene >.

void Scene::onEnter__AllowedShaders const XML_Char **  papszAttrs  )  [private]
 

Fonction de lecture de la balise <allowedshaders>.

void Scene::onEnter__File const XML_Char **  papszAttrs  )  [private]
 

Fonction de lecture de la balise <file>.

void Scene::onEnter__ForceTexture const XML_Char **  papszAttrs  )  [private]
 

Fonction de lecture de la balise <forcetexture>.

void Scene::onEnter__OnLatitude const XML_Char **  papszAttrs  )  [private]
 

Fonction de lecture de la balise <onlatitude>.

void Scene::onEnter__OnLongitude const XML_Char **  papszAttrs  )  [private]
 

Fonction de lecture de la balise <onlongitude>.

void Scene::onEnter__Scene const XML_Char **  papszAttrs  )  [private]
 

Fonction de lecture de la balise <scene>.

void Scene::onEnter__Shader const XML_Char **  papszAttrs  )  [private]
 

Fonction de lecture de la balise <shader>.

void Scene::onEnter__Sun const XML_Char **  papszAttrs  )  [private]
 

Fonction de lecture de la balise <sun>.

void Scene::onEnter__Terrain const XML_Char **  papszAttrs  )  [private]
 

Fonction de lecture de la balise <terrain>.

void Scene::OnStartElement const XML_Char *  pszName,
const XML_Char **  papszAttrs
 

Fonction de parsing d'une balise.

Parameters:
pszName Nom de la balise.
papszAttrs Liste des argument de la balise.

Reimplemented from CExpatImpl< Scene >.

static void Scene::stat_onEnter__AllowedShaders void *  obj,
const XML_Char **  papszAttrs
[inline, static, private]
 

Callback de lecture de la balise <allowedshaders>.

static void Scene::stat_onEnter__File void *  obj,
const XML_Char **  papszAttrs
[inline, static, private]
 

Callback de lecture de la balise <file>.

static void Scene::stat_onEnter__ForceTexture void *  obj,
const XML_Char **  papszAttrs
[inline, static, private]
 

Callback de lecture de la balise <forcetexture>.

static void Scene::stat_onEnter__OnLatitude void *  obj,
const XML_Char **  papszAttrs
[inline, static, private]
 

Callback de lecture de la balise <onlatitude>.

static void Scene::stat_onEnter__OnLongitude void *  obj,
const XML_Char **  papszAttrs
[inline, static, private]
 

Callback de lecture de la balise <onlongitude>.

static void Scene::stat_onEnter__Scene void *  obj,
const XML_Char **  papszAttrs
[inline, static, private]
 

Callback de lecture de la balise <scene>.

static void Scene::stat_onEnter__Shader void *  obj,
const XML_Char **  papszAttrs
[inline, static, private]
 

Callback de lecture de la balise <shader>.

static void Scene::stat_onEnter__Sun void *  obj,
const XML_Char **  papszAttrs
[inline, static, private]
 

Callback de lecture de la balise <sun>.

static void Scene::stat_onEnter__Terrain void *  obj,
const XML_Char **  papszAttrs
[inline, static, private]
 

Callback de lecture de la balise <terrain>.


Member Data Documentation

unsigned int Scene::currentLat [private]
 

Latitude courante des heightmaps en cours de lecture.

unsigned int Scene::currentLatSide [private]
 

Cote de latitude courant des heightmaps en cours de lecture.

unsigned int Scene::currentLong [private]
 

Longitude courante des heightmaps en cours de lecture.

unsigned int Scene::currentLongSide [private]
 

Cote de longitude courant des heightmaps en cours de lecture.

sceneShaderInfoPtr Scene::currentSsi [private]
 

Structure d'informations courante sur un shader en cours de lecture.

vector<heightMapInfoPtr> Scene::heightMaps [private]
 

Liste des definitions de heightmaps du fichier.

unsigned int Scene::loaderState [private]
 

Etat du parser.

unsigned int Scene::nbPatchX [private]
 

Nombre de patches selon X pour le terrain de la scene.

unsigned int Scene::nbPatchY [private]
 

Nombre de patches selon Y pour le terrain de la scene.

vector<sceneShaderInfoPtr> Scene::sceneShaders [private]
 

Liste des definitions de shaders utilisables du fichier.

unsigned int Scene::sizeX [private]
 

Nombre de heightmaps selon X definies dans la scene.

unsigned int Scene::sizeY [private]
 

Nombre de heightmaps selon Y definies dans la scene.

map< const char *, stateInfoPtr, ltstr > Scene::states [static, private]
 

Liste des etats du parser.

float Scene::sunPosition[3] [private]
 

Position du soleil definie dans le fichier.


Generated on Thu Mar 24 12:53:49 2005 for Septant by  doxygen 1.4.1