Room Class Reference

Gestion des pieces (et corridors) du vaisseau spacial. More...

#include <Room.h>

List of all members.

Public Member Functions

 Room (String Name, String MeshFile, Vector3 Position, SceneManager *SceneMgr, SceneNode *mParentNode)
 Constructeur.
virtual ~Room ()
 Destructeur.
void loadObject ()
 Charge les paramètres initiaux de la pièce.
long getTypeID (void) const
 Cette fonction renvoie un identifiant pour les userDefinedObject Room.
void addToScene ()
 Ajoute la piece à la scene courante.
void setOrientation (Degree angle, Quaternion Qorient, bool dotScene=false)
 Cette fonction oriente le mesh correspondant à la pièce.
void removeFromScene ()
 Cette fonction efface la Room, (pour gagner en framerate).
void createLight (Light::LightTypes lumtype, String name=ROOMLIGHT, bool castShadows=false)
 Cette fonction cree une lumiere à l'interieur de la pièce (maximum 4).
void setLightPosition (Vector3 position, String name=ROOMLIGHT)
 Definit la position d'une lumiere de la piece.
void setLightDirection (Vector3 direction, String name=ROOMLIGHT)
 Definit la direction d'une lumiere de la piece (pour les spots).
void setLightColour (ColourValue newcolour, String name=ROOMLIGHT)
 Permet de changer dynamiquement la couleur d'une lumière.
void setLightRange (int range, String name=ROOMLIGHT)
 Definit la portée d'une lumiere de la piece, selon la formule A=1/(a+bR+cR²).
void setLight (bool On, String name=ROOMLIGHT)
 Allume (ou éteint) une lumière dans la piece:.
void setSpotLightRange (Real inner, Real outer, Real falloff, String name)
 Definit le cone d'une lumière spot.
void setNightLight (bool On)
 Gestion de la lumiere rouge de la piece.
void setAlertLevel (short alert)
 Active la sirène d'alarme, et les écrans d'alerte.
void setLampColour (ColourValue newcolor)
 Change la couleur luminescente des lampes murales.
void setExternView (bool externview)
 Indique si la Room a une ouverture vers l'Exterieur.
void setSoundFile (String SoundFile)
 On memorise un son d'ambiance (en boucle) associé à la pièce.
String getName ()
 Renvoie le nom de la piece.
SceneNode * getNode ()
 Renvoie le Node associé à la piece.
String getStatus ()
 Renvoie le status de la Room sous forme de chaine XML.
bool isBroken ()
 Cette fonction indique si la piece est depressurisée.
String getChildStatus ()
 Renvoie le status des objets appartenant à cette Room.
Vector3 getPosition ()
 Cette fonction renvoie la position de la pièce (par rapport à son parent).
void setDepressurized ()
 La Room est dépressurisée.
MaterialPtr getMaterial (String MaterialName)
 Retrouve un material de la Room par son nom.
SubEntity * getSubEntity (String MaterialName)
 Retrouve une SubEntity de la Room par son nom.
void translate (Vector3 offsetVector)
 Déplace le Node de la Room. La pièce suit ainsi la position de la scene à laquelle elle appartient.
void adjustPitch ()
 Quand on importe de DotScene de Blender, bien souvent il faut corriger l'orientation de -90 degres.
void setPanelMaterialName (String MaterialName)
 On mémorise le nom du material portant le nom de la piece, et qui doit etre affiché à l'entrée.
String getPanelMaterialName ()
 Cette fonction retourne le nom du material portant le nom de la piece, et qui doit etre affiché à l'entrée.
void setElevatorRoom (bool elevator)
 Cette fonction affecte (ou non) à la piece le status d'ascenseur.
bool isElevatorRoom ()
 Cette fonction indique si la piece est un ascenseur.
bool hasExternView ()
 Indique si la Room a une ouverture vers l'Exterieur.
void _showLightPosition (SceneNode *N)
 Debug: On visualise un objet à l'endroit de la source lumineuse.
void _updateLightMarker (SceneNode *N)
 Debug: On actualise la position de l'objet à l'endroit de la source lumineuse.

Protected Member Functions

void createRoom ()
 Cette fonction cree une Entité (mesh) pour la piece.
void initCollisionShape ()
 Gere les collisions avec les murs de la pièce.

Protected Attributes

SceneNode * mRoomNode
SceneNode * mLightNode
String mRoomName
String mMeshFile
Entity * mRoomEntity
bool mElevatorRoom
SceneManager * mSceneMgr
SceneNode * mParentNode
Entity * mLightEntity
Billboard * mLightSprite
int mLightRange
ColourValue mLightColour
bool mNightLight
bool mNormalLight
ColourValue mRedColour
bool mOnScene
int mRoomAlertChannel
int mRoomSoundChannel
String mRoomSoundFile
String mRoomPanel
bool mHasExternView
bool mBroken
short mAlertLevel
int mDamage_ETR
Light * mLight [4]
 On peut stocker 4 lampes, 0=ROOMLIGHT.
OgreOpcode::CollisionObject * mCollideObject
 Objet pour les collisions.


Detailed Description

Gestion des pieces (et corridors) du vaisseau spacial.


Constructor & Destructor Documentation

Room::Room String  Name,
String  MeshFile,
Vector3  Position,
SceneManager *  SceneMgr,
SceneNode *  mParentNode
 

Constructeur.

Room::~Room  )  [virtual]
 

Destructeur.


Member Function Documentation

void Room::_showLightPosition SceneNode *  N  ) 
 

Debug: On visualise un objet à l'endroit de la source lumineuse.

void Room::_updateLightMarker SceneNode *  N  ) 
 

Debug: On actualise la position de l'objet à l'endroit de la source lumineuse.

void Room::addToScene  ) 
 

Ajoute la piece à la scene courante.

void Room::adjustPitch  ) 
 

Quand on importe de DotScene de Blender, bien souvent il faut corriger l'orientation de -90 degres.

void Room::createLight Light::LightTypes  lumtype,
String  name = ROOMLIGHT,
bool  castShadows = false
 

Cette fonction cree une lumiere à l'interieur de la pièce (maximum 4).

void Room::createRoom  )  [protected]
 

Cette fonction cree une Entité (mesh) pour la piece.

String Room::getChildStatus  ) 
 

Renvoie le status des objets appartenant à cette Room.

Attention: je suppose que l'objet est toujours en indice 0. (Pour etre plus robuste, il faudrait gerer un iterateur)

MaterialPtr Room::getMaterial String  MaterialName  ) 
 

Retrouve un material de la Room par son nom.

String Room::getName  ) 
 

Renvoie le nom de la piece.

SceneNode * Room::getNode  ) 
 

Renvoie le Node associé à la piece.

String Room::getPanelMaterialName  ) 
 

Cette fonction retourne le nom du material portant le nom de la piece, et qui doit etre affiché à l'entrée.

Vector3 Room::getPosition  ) 
 

Cette fonction renvoie la position de la pièce (par rapport à son parent).

String Room::getStatus  ) 
 

Renvoie le status de la Room sous forme de chaine XML.

SubEntity * Room::getSubEntity String  MaterialName  ) 
 

Retrouve une SubEntity de la Room par son nom.

long Room::getTypeID void   )  const
 

Cette fonction renvoie un identifiant pour les userDefinedObject Room.

bool Room::hasExternView  ) 
 

Indique si la Room a une ouverture vers l'Exterieur.

void Room::initCollisionShape  )  [protected]
 

Gere les collisions avec les murs de la pièce.

bool Room::isBroken  ) 
 

Cette fonction indique si la piece est depressurisée.

bool Room::isElevatorRoom  ) 
 

Cette fonction indique si la piece est un ascenseur.

void Room::loadObject  ) 
 

Charge les paramètres initiaux de la pièce.

void Room::removeFromScene  ) 
 

Cette fonction efface la Room, (pour gagner en framerate).

Note: Cette fonction n'efface pas le décor (galaxy box) car il peut rester affiché en raison d'autres pièces. C'est le ship qui se charge de gérer le bon moment où effacer le décor.

void Room::setAlertLevel short  alert  ) 
 

Active la sirène d'alarme, et les écrans d'alerte.

TODO: choisir le meilleur son

TODO: gerer Alerte niveau 1

TODO: gerer Alerte niveau 3

TODO: gerer Alerte niveau 4

TODO: gerer Alerte niveau 5

TODO: Audio sirene d'alarme

void Room::setDepressurized  ) 
 

La Room est dépressurisée.

void Room::setElevatorRoom bool  elevator  ) 
 

Cette fonction affecte (ou non) à la piece le status d'ascenseur.

void Room::setExternView bool  externview  ) 
 

Indique si la Room a une ouverture vers l'Exterieur.

void Room::setLampColour ColourValue  newcolor  ) 
 

Change la couleur luminescente des lampes murales.

CE n'est pas très optimibé de metter cette fonction au niveau de chaque room ....

void Room::setLight bool  On,
String  name = ROOMLIGHT
 

Allume (ou éteint) une lumière dans la piece:.

Parameters:
On Indique s'il faut allumer la lumiere.
name Le nom de la lumière.

void Room::setLightColour ColourValue  newcolour,
String  name = ROOMLIGHT
 

Permet de changer dynamiquement la couleur d'une lumière.

void Room::setLightDirection Vector3  direction,
String  name = ROOMLIGHT
 

Definit la direction d'une lumiere de la piece (pour les spots).

void Room::setLightPosition Vector3  position,
String  name = ROOMLIGHT
 

Definit la position d'une lumiere de la piece.

void Room::setLightRange int  range,
String  name = ROOMLIGHT
 

Definit la portée d'une lumiere de la piece, selon la formule A=1/(a+bR+cR²).

void Room::setNightLight bool  On  ) 
 

Gestion de la lumiere rouge de la piece.

Parameters:
On Indique s'il faut allumer la lumiere rouge.
  • TRUE : on allume la veilleuse rouge
  • FALSE : on allume la lumiere principale

void Room::setOrientation Degree  angle,
Quaternion  Qorient,
bool  dotScene = false
 

Cette fonction oriente le mesh correspondant à la pièce.

Parameters:
Orientation Angle (en degrés) autour de l'axe vertical, dont doit etre orienté la pièce.
Qorient Quaternion d'orientation de la pièce.
dotScene Si la pièce a été décrite au format dotScene, il faut utiliser le quaternion.

void Room::setPanelMaterialName String  MaterialName  ) 
 

On mémorise le nom du material portant le nom de la piece, et qui doit etre affiché à l'entrée.

void Room::setSoundFile String  SoundFile  ) 
 

On memorise un son d'ambiance (en boucle) associé à la pièce.

void Room::setSpotLightRange Real  inner,
Real  outer,
Real  falloff,
String  name
 

Definit le cone d'une lumière spot.

void Room::translate Vector3  offsetVector  ) 
 

Déplace le Node de la Room. La pièce suit ainsi la position de la scene à laquelle elle appartient.


Member Data Documentation

short Room::mAlertLevel [protected]
 

bool Room::mBroken [protected]
 

OgreOpcode::CollisionObject* Room::mCollideObject [protected]
 

Objet pour les collisions.

int Room::mDamage_ETR [protected]
 

bool Room::mElevatorRoom [protected]
 

bool Room::mHasExternView [protected]
 

Light* Room::mLight[4] [protected]
 

On peut stocker 4 lampes, 0=ROOMLIGHT.

ColourValue Room::mLightColour [protected]
 

Entity* Room::mLightEntity [protected]
 

SceneNode* Room::mLightNode [protected]
 

int Room::mLightRange [protected]
 

Billboard* Room::mLightSprite [protected]
 

String Room::mMeshFile [protected]
 

bool Room::mNightLight [protected]
 

bool Room::mNormalLight [protected]
 

bool Room::mOnScene [protected]
 

SceneNode* Room::mParentNode [protected]
 

ColourValue Room::mRedColour [protected]
 

int Room::mRoomAlertChannel [protected]
 

Entity* Room::mRoomEntity [protected]
 

String Room::mRoomName [protected]
 

SceneNode* Room::mRoomNode [protected]
 

String Room::mRoomPanel [protected]
 

int Room::mRoomSoundChannel [protected]
 

String Room::mRoomSoundFile [protected]
 

SceneManager* Room::mSceneMgr [protected]
 


The documentation for this class was generated from the following files:
Generated on Mon Mar 27 21:33:15 2006 for Long Forgotten Earth by  doxygen 1.4.6-NO