#include <bsp.h>
Public Member Functions | |
cBSP_Tree () | |
constructeur | |
~cBSP_Tree () | |
destructeur | |
cBSP_Node * | Get_Root () |
retoune la racine de l'arbre | |
void | Add_Divider (cDivider_Type ÷r) |
Ajoute le divider à l'espace. | |
void | Print () |
imprime sur std::cout les infos sur ce BSP | |
cBSP_Node * | Where_Is (cItem &item) |
retourne le 'cBSP_Node' dans lequel se trouve le cItem 'item' | |
cBSP_Node * | In_Which_Leaf_Is (cItem &item) |
retourne le 'cBSP_Node' dans lequel se trouve le cItem 'item', en forcant à retourner une feuille ! | |
void | Apply_To_Each_Node (void(*Call_Back)(cBSP_Node *node)) |
applique la fonction callback à tous les noeuds ( et pas aux feuilles ) | |
Private Member Functions | |
void | Recursive_Apply_To_Each_Node (void(*Call_Back)(cBSP_Node *node), cBSP_Node *node) |
applique la fonction callback à tous les noeuds sous le noeud 'node' compris ( et pas aux feuilles ) | |
cBSP_Node * | Where_Is (cItem &item, cBSP_Node *node) |
cBSP_Node * | In_Which_Leaf_Is (cItem &item, cBSP_Node *node) |
void | Add_Divider (cDivider_Type ÷r, cBSP_Node *node) |
ajoute le divider 'divider' au sous-espaces sous le noeud 'node' | |
Static Private Member Functions | |
char * | Get_String_BSP_Position_Divider (BSP_POSITION_DIVIDER pos) |
convertit un 'BSP_POSITION_DIVIDER' en chaine de caractere | |
char * | Get_String_BSP_Position_Point (BSP_POSITION_POINT pos) |
convertit un 'BSP_POSITION_POINT' en chaine de caractere | |
Private Attributes | |
cBSP_Node * | Root |
la racine de l'arbre | |
int | N_Nodes |
le nombre de noeud que compte l'arbre |
'cItem' : le type d'objet qui compose l'espace a diviser ( generique, pas forcement des points)
'cBSP_Node' : le type de noeud décrit plus haut
'cDivider_Type' : le type de divider utilisé pour diviser un espace en deux sous-espaces
IMPORTANT : la class cDivider_Type fournie ici doit impérativement etre la meme que celle utilisée pour
instancier la classe cBSP_Node !
Definition at line 115 of file bsp.h.
|
constructeur
|
|
destructeur
|
|
ajoute le divider 'divider' au sous-espaces sous le noeud 'node'
|
|
Ajoute le divider à l'espace.
Definition at line 136 of file bsp.h. Referenced by cLevel_Loader::Read_Wall(), and cBSP_Loader::Read_Wall(). |
|
applique la fonction callback à tous les noeuds ( et pas aux feuilles )
Definition at line 177 of file bsp.h. Referenced by cGame_Manager::Display(). |
|
retoune la racine de l'arbre
Definition at line 133 of file bsp.h. Referenced by cGame_World::Decorate_With_Areas(). |
|
convertit un 'BSP_POSITION_DIVIDER' en chaine de caractere
|
|
convertit un 'BSP_POSITION_POINT' en chaine de caractere
|
|
identique a 'BSP_cBSP_Node * In_Which_Leaf_Is(cItem & item)' sauf que la recherche se fait dans l'espace correspondant aux sous-espaces devant et derriere 'node' |
|
retourne le 'cBSP_Node' dans lequel se trouve le cItem 'item', en forcant à retourner une feuille !
si item est situé exactement à l'intérieur d'un sous-espaces, le noeud retourné sera une feuille Definition at line 171 of file bsp.h. Referenced by cGame_World::Do_Ball_Intersect_Walls(), cGame_World::Do_Segment_Intersect_Walls(), and cGame_World::Find_Path(). |
|
imprime sur std::cout les infos sur ce BSP
|
|
applique la fonction callback à tous les noeuds sous le noeud 'node' compris ( et pas aux feuilles )
|
|
identique a 'cBSP_Node * Where_Is( cItem & item )' sauf que la recherche se fait dans l'espace correspondant aux sous-espaces devant et derriere 'node' |
|
retourne le 'cBSP_Node' dans lequel se trouve le cItem 'item'
si item est situé exactement à l'intérieur d'un sous-espaces, le noeud retourné sera une feuille Definition at line 162 of file bsp.h. Referenced by cGame_World::Add_Wall_And_Portals(), and cGame_World::Do_Segment_Intersect_Walls(). |
|
le nombre de noeud que compte l'arbre
|
|
la racine de l'arbre
|