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

cSquare_Area Class Reference

decrit une region rectangulaire de l'espace non divisée ds le BSP tree, cad une feuille More...

#include <game_bsp.h>

Inheritance diagram for cSquare_Area:

cBSP_Node< Divider_Type > List of all members.

Public Member Functions

 cSquare_Area (cPositive_Rectangle &area)
 ~cSquare_Area ()
 destructeur

void Print ()
 affiche sur std::cout les infos sur ce cSquare_Area

void split (cHV_Wall &wall, cSquare_Area **A1, cSquare_Area **A2)
 divise ce cSquare_Area en deux cSquare_Area

void Add_Wall (cHV_Seg &w)
 ajoute à cette piece un mur

void Add_Portal (cPortal *portal)
 ajoute un portal à cette piece

void Add_Paralells_Portals (cPortal *portal1, cPortal *portal2)
 ajoute un portal paralel dans cette piece

void Get_Centre (cPoint2D &p)
 cherche le centre de la zone

void Manage_Paralell_Portals ()
 créee un noeud entre deux portails paralelles d'un mur de cette piece


Public Attributes

cPositive_Rectangle Bounds
 rectangle representant la zone

std::vector< cHV_Seg * > List_Walls
 la liste des segments qui forment les murs de la piece

std::vector< cPortal * > List_Portals
 la liste des portals de la piece


Detailed Description

decrit une region rectangulaire de l'espace non divisée ds le BSP tree, cad une feuille

herite de cHV_Node pour etre inséré ds l'arbre
convention : les murs et les portals d'un feuille appartiennent à la zone
ils sont situés à la limite du rectangle, mais à l'intérieur !
cela signifie que l'intersection entre deux cSquare_Area est :
-> soit vide
-> soit composée des portals et des murs entre ces deux zones !

Definition at line 35 of file game_bsp.h.


Constructor & Destructor Documentation

cSquare_Area::cSquare_Area cPositive_Rectangle area  )  [inline]
 

constructeur 'area' : cPositive_Rectangle qui represente la zone contenue ds cette feuille

Definition at line 41 of file game_bsp.h.

References Bounds.

cSquare_Area::~cSquare_Area  ) 
 

destructeur

Definition at line 18 of file game_bsp.cpp.


Member Function Documentation

void cSquare_Area::Add_Paralells_Portals cPortal portal1,
cPortal portal2
 

ajoute un portal paralel dans cette piece

'portal1' : pointeur vers le premier portal
'portal2' : pointeur vers le second portal

Definition at line 177 of file game_bsp.cpp.

References Add_Paralells_Portals(), Bounds, cSeg::Get_p0(), cSeg::Get_p1(), cPositive_Rectangle::In(), List_Portals, and cPortal::Segment.

Referenced by Add_Paralells_Portals().

void cSquare_Area::Add_Portal cPortal portal  ) 
 

ajoute un portal à cette piece

'portal' : pointeur vers le portal qu'on rajoute

Definition at line 146 of file game_bsp.cpp.

References Add_Portal(), cPortal::Add_Voisin(), Bounds, cSeg::Get_p0(), cSeg::Get_p1(), cPositive_Rectangle::In(), List_Portals, cHV_Seg::On_Same_Line(), and cPortal::Segment.

Referenced by Add_Portal(), cGame_World::Declare_Portal(), and cGame_World::Split_Portal().

void cSquare_Area::Add_Wall cHV_Seg w  ) 
 

ajoute à cette piece un mur

'w' : segment qui represente le mur, doit etre contenue dans la frontiere interieure de cette piece

Definition at line 80 of file game_bsp.cpp.

References Add_Wall(), Bounds, cSeg::Get_p0(), cSeg::Get_p1(), cPositive_Rectangle::In(), and List_Walls.

Referenced by Add_Wall(), and cGame_World::Add_Wall_And_Portals().

void cSquare_Area::Get_Centre cPoint2D p  )  [inline]
 

cherche le centre de la zone

'p' : contiendra le centre de la zone

Definition at line 77 of file game_bsp.h.

References Bounds, cRectangle::Get_Centre(), Get_Centre(), and cPositive_Rectangle::In().

Referenced by Get_Centre(), and Manage_Paralell_Portals().

void cSquare_Area::Manage_Paralell_Portals  ) 
 

créee un noeud entre deux portails paralelles d'un mur de cette piece

on cherche les portails paralelles de cette piece
lorsqu'on en trouve on crée un noeud entre eux

Definition at line 93 of file game_bsp.cpp.

References Get_Centre(), cSeg::Get_Middle(), cPoint2D::Get_X(), cPoint2D::Get_Y(), cHV_Seg::Is_Horizontal(), List_Portals, cPoint2D::Set(), cHV_Seg::Set(), cPoint2D::X, and cPoint2D::Y.

void cSquare_Area::Print  )  [virtual]
 

affiche sur std::cout les infos sur ce cSquare_Area

Reimplemented from cBSP_Node< Divider_Type >.

Definition at line 31 of file game_bsp.cpp.

References Bounds, List_Portals, and List_Walls.

void cSquare_Area::split cHV_Wall wall,
cSquare_Area **  A1,
cSquare_Area **  A2
 

divise ce cSquare_Area en deux cSquare_Area

les deux objets cSquare_Area sont créés dans cette fonction
'wall' : la division se fait selon la droite porteuse de ce mur
'A1' : adresse du pointeur sur la premiere cSquare_Area créé !
'A2' : adresse du pointeur sur la premiere cSquare_Area créé !

Definition at line 51 of file game_bsp.cpp.

References Bounds, cPoint2D::Get_X(), cPoint2D::Get_Y(), cHV_Wall::Is_Horizontal(), cWall::p0, cRectangle::p0, cRectangle::p1, cPoint2D::Set(), split(), and cPoint2D::Y.

Referenced by cGame_World::Decorate_With_Areas(), and split().


Member Data Documentation

cPositive_Rectangle cSquare_Area::Bounds
 

rectangle representant la zone

Definition at line 90 of file game_bsp.h.

Referenced by Add_Paralells_Portals(), Add_Portal(), Add_Wall(), cSquare_Area(), cSquare_Area_Debug_Displayer::Display(), Get_Centre(), Print(), and split().

std::vector<cPortal*> cSquare_Area::List_Portals
 

la liste des portals de la piece

Definition at line 92 of file game_bsp.h.

Referenced by Add_Paralells_Portals(), Add_Portal(), cSquare_Area_Debug_Displayer::Display(), cA_Star_Point::Get_List_Neighbors(), Manage_Paralell_Portals(), and Print().

std::vector<cHV_Seg*> cSquare_Area::List_Walls
 

la liste des segments qui forment les murs de la piece

Definition at line 91 of file game_bsp.h.

Referenced by Add_Wall(), cSquare_Area_Debug_Displayer::Display(), cGame_World::Do_Ball_Intersect_Walls(), and Print().


The documentation for this class was generated from the following files:
Generated on Fri May 21 19:22:37 2004 for LIBELL by doxygen 1.3.7