StarDatabase Class Reference

Interface avec les fichiers Celestia. More...

#include <StarsDatabase.h>

List of all members.

Public Member Functions

 StarDatabase (CatalogStar **StarArray, int sizeArray, String filename)
 Contructeur.
virtual ~StarDatabase ()
 Destructeur.
int readStars (int starNumber=ALL)
 Charge le contenu du fichier des étoiles stars.dat au format CELESTIA.
CatalogStargetClosestStar ()
 Renvoie l'étoile la plus proche de la position actuelle, ou NULL si elle est plus loin que 1 jl.

Protected Member Functions

bool openFile (String filename)
 Ouvre en lecture un fichier de type CELESTIA, et vérifie son entête.
Real getDistance (Vector3 StarCoord)
 Cette fonction renvoie la distance jusqu'à l'étoile fournie en paramètre.
bool isClosest (Real SQ_Distance)
 Cette fonction indique si le vaisseau se trouve dans le voisinage proche de cette étoile.
bool isVisible (Real SQ_Distance, Real M)
 Cette fonction indique si l'étoile est visible à cette distance.
bool isInQuadrant (Vector3 StarCoord)
 Renvoie TRUE si cette étoile est proche de la position actuelle.

Protected Attributes

ifstream starFile
 Fichier Celestia à lire.
int mStarsInFile
 Nombre d'étoiles dans le fichier.
CatalogStar ** pStars
 Pointeur sur le tableau des étoiles à remplir.
int mMaxStars
 Taille du tableau des étoiles.
int mStarIndex
 index courant dans le tableau.
CatalogStarmClosestStar
 Pointeur l'étoile la plus proche du vaisseau.
Real mClosestDist
 Distance de l'étoile la plus proche (unit = AL).
Vector3 mShipCoord
 Coordonnées du vaisseau dans l'univers (unit = AL).
int mNormalStarCount
 Compteur pour statistiques.
int mWhiteDwarfCount
 Compteur pour statistiques.
int mNeutronStarCount
 Compteur pour statistiques.
int mBlackHoleCount
 Compteur pour statistiques.


Detailed Description

Interface avec les fichiers Celestia.

TODO : interface avec les fichiers d'objets (archipels, epaves, trous noirs) -header = CELSTARS -version = 0x0001 -starcount = 0x87B70100.....0001B787.....=112519 = Nombre d'étoiles dans le fichier. -catalog No = 0x01000000.....00000001.....= No de catalog de l'étoile -position X = 0x654D6644.....float........= Position de l'étoile -position Y = 0x0F7C8041.....float........ unit = AL -position Z = 0xB754DFC0.....float........ origin = Sun -Abs magn = 0xD701.........0x01D7........=471 = 1.84 * 256 -Spect. Type= 0x5803.........0x0358........champ de bits Exemple 0x0358 = 0000 0011 0101 1000 soit = tttt ssss cccc llll


Constructor & Destructor Documentation

StarDatabase::StarDatabase CatalogStar **  StarArray,
int  sizeArray,
String  filename
 

Contructeur.

Parameters:
StarArray est un pointeur sur un tableau de pointeurs.
sizeArray est la taille de ce tableau, à ne pas dépasser.

StarDatabase::~StarDatabase  )  [virtual]
 

Destructeur.


Member Function Documentation

CatalogStar * StarDatabase::getClosestStar  ) 
 

Renvoie l'étoile la plus proche de la position actuelle, ou NULL si elle est plus loin que 1 jl.

On considère que l'on entre dans un systeme solaire, si on est à moins de 1 jour-lumière de l'étoile.

Real StarDatabase::getDistance Vector3  StarCoord  )  [protected]
 

Cette fonction renvoie la distance jusqu'à l'étoile fournie en paramètre.

Parameters:
StarPos Position de l'étoile par rapport à la galaxie (unit = AL)
Returns:
Distance du Ship à cette étoile (unit = AL²). Note: L'origine de la Galaxie est le soleil.

bool StarDatabase::isClosest Real  SQ_Distance  )  [protected]
 

Cette fonction indique si le vaisseau se trouve dans le voisinage proche de cette étoile.

Parameters:
SQ_Distance Distance de l'étoile en AL² (Square distance). Renvoie vrai si cette étoile est la plus proche du vaisseau. Cette fonction affine son résultat au fur et à mesure qu'elle analyse les étoiles. Renvoie FALSE si on est à plus de 1 Jour.Lumière.

bool StarDatabase::isInQuadrant Vector3  StarCoord  )  [protected]
 

Renvoie TRUE si cette étoile est proche de la position actuelle.

Méthode basée sur un découpage de l'univers en cubes (quadrans galactiques)

bool StarDatabase::isVisible Real  SQ_Distance,
Real  M
[protected]
 

Cette fonction indique si l'étoile est visible à cette distance.

Méthode basée sur la magnitude apparente.

Parameters:
SQ_Distance Distance de l'étoile en AL² (Square distance).
M Magnitude absolue de l'étoile.
Returns:
TRUE si cette étoile est visible de la position actuelle. On utilise les équations: m = M-5 + 5Log(d) (d en parsec) et: log(d²) = 2log(d)

bool StarDatabase::openFile String  filename  )  [protected]
 

Ouvre en lecture un fichier de type CELESTIA, et vérifie son entête.

int StarDatabase::readStars int  starNumber = ALL  ) 
 

Charge le contenu du fichier des étoiles stars.dat au format CELESTIA.

Parameters:
starNumber Le nombre d'étoiles à lire (ou 'ALL').
Returns:
Le nombre d'étoiles lues. Note: La lecture des 112000 étoiles du fichier prend moins d'une seconde. Des conversions sont nécesaires, car les valeurs sont stockées en binaire inverse.


Member Data Documentation

int StarDatabase::mBlackHoleCount [protected]
 

Compteur pour statistiques.

Real StarDatabase::mClosestDist [protected]
 

Distance de l'étoile la plus proche (unit = AL).

CatalogStar* StarDatabase::mClosestStar [protected]
 

Pointeur l'étoile la plus proche du vaisseau.

int StarDatabase::mMaxStars [protected]
 

Taille du tableau des étoiles.

int StarDatabase::mNeutronStarCount [protected]
 

Compteur pour statistiques.

int StarDatabase::mNormalStarCount [protected]
 

Compteur pour statistiques.

Vector3 StarDatabase::mShipCoord [protected]
 

Coordonnées du vaisseau dans l'univers (unit = AL).

int StarDatabase::mStarIndex [protected]
 

index courant dans le tableau.

int StarDatabase::mStarsInFile [protected]
 

Nombre d'étoiles dans le fichier.

int StarDatabase::mWhiteDwarfCount [protected]
 

Compteur pour statistiques.

CatalogStar** StarDatabase::pStars [protected]
 

Pointeur sur le tableau des étoiles à remplir.

ifstream StarDatabase::starFile [protected]
 

Fichier Celestia à lire.


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