Quadtree Class Reference

#include <quadtree.h>

Collaboration diagram for Quadtree:

Collaboration graph
[legend]
List of all members.

Public Types

enum  neighbor_t { n_left, n_up, n_right, n_down }

Public Member Functions

 Quadtree ()
 ~Quadtree ()
bool Alloc (const int width)
void Free (void)
void get_root (QuadtreeNode &root)
int get_index (const QuadtreeNode &leaf)
bool is_subdivided (const QuadtreeNode &node)
bool get_subnodes (const QuadtreeNode &node, QuadtreeNode *nodes)
bool get_neighbor (const neighbor_t type, const QuadtreeNode &node, QuadtreeNode &neighbor)
void set_node (const QuadtreeNode &node)
void set_leaf (const QuadtreeNode &node)

Protected Member Functions

int get_pos (const QuadtreeNode &node)

Protected Attributes

QuadtreeNode m_root
bool * m_matrix

Classes

struct  QuadtreeNode

Detailed Description

Trida pro operace s QuadTree. Uchovava strukturu popisujici strom a nad ni pracuje, lze pripojit data. To znamena, ze jeden strom muze pracovat nad vice daty. Definuje operace nad uzly stromu, tedy je to jakysi nadrazeny manipulator.

Definition at line 10 of file quadtree.h.


Member Enumeration Documentation

enum Quadtree::neighbor_t
 

Enumerator:
n_left 
n_up 
n_right 
n_down 

Definition at line 13 of file quadtree.h.


Constructor & Destructor Documentation

Quadtree::Quadtree  )  [inline]
 

Definition at line 26 of file quadtree.h.

References m_root, Quadtree::QuadtreeNode::width, Quadtree::QuadtreeNode::x, and Quadtree::QuadtreeNode::y.

Quadtree::~Quadtree  )  [inline]
 

Definition at line 29 of file quadtree.h.

References Free().

Here is the call graph for this function:


Member Function Documentation

bool Quadtree::Alloc const int  width  ) 
 

Alokuje pamet pro strukturu stromu.

Parameters:
width Sirka korenoveho uzlu.
Note:
Alokuje width * width pameti (bool) pro matici reprezentujici quadtree.

Definition at line 3 of file quadtree.cpp.

References Free(), m_matrix, m_root, Quadtree::QuadtreeNode::width, Quadtree::QuadtreeNode::x, and Quadtree::QuadtreeNode::y.

Referenced by TerrainRoetger::allocateHeightmap().

Here is the call graph for this function:

void Quadtree::Free void   ) 
 

Uvolni alokovanou pamet.

Definition at line 15 of file quadtree.cpp.

References m_matrix, m_root, and Quadtree::QuadtreeNode::width.

Referenced by Alloc(), and ~Quadtree().

int Quadtree::get_index const QuadtreeNode leaf  )  [inline]
 

Vraci index hodnoty ulozene v listu stromu.

Parameters:
leaf list, ze ktereho chceme hodnotu ulozenou ve stromu
Returns:
Pozice dat v poli, ktere pokryva tento strom.

Definition at line 51 of file quadtree.h.

References get_pos().

Here is the call graph for this function:

bool Quadtree::get_neighbor const neighbor_t  type,
const QuadtreeNode node,
QuadtreeNode neighbor
 

Ziska odkaz na souseda.

Parameters:
type Typ souseda (vlevo, vpravo, nahore, dole).
neighbor Sousedni uzel podle type.

Definition at line 38 of file quadtree.cpp.

References m_root, n_down, n_right, Quadtree::QuadtreeNode::width, Quadtree::QuadtreeNode::x, and Quadtree::QuadtreeNode::y.

Referenced by TerrainRoetger::render_quadtree().

int Quadtree::get_pos const QuadtreeNode node  )  [inline, protected]
 

Definition at line 84 of file quadtree.h.

References m_root, Quadtree::QuadtreeNode::width, Quadtree::QuadtreeNode::x, and Quadtree::QuadtreeNode::y.

Referenced by get_index(), is_subdivided(), set_leaf(), and set_node().

void Quadtree::get_root QuadtreeNode root  )  [inline]
 

Ziska korenovy uzel stromu.

Parameters:
root Koren stromu.

Definition at line 44 of file quadtree.h.

References m_root.

Referenced by TerrainRoetger::build_quadtree(), and TerrainRoetger::render_quadtree().

bool Quadtree::get_subnodes const QuadtreeNode node,
QuadtreeNode nodes
 

Ziska 4 poduzly daneho uzlu, pokud existuji.

Parameters:
node Uzel, ze ktereho chceme ziskat poduzly.
nodes Predalokovane pole pro 4 poduzly uzlu node.
Returns:
Povedlo/Nepovedlo.

Definition at line 24 of file quadtree.cpp.

References is_subdivided(), Quadtree::QuadtreeNode::width, Quadtree::QuadtreeNode::x, and Quadtree::QuadtreeNode::y.

Referenced by TerrainRoetger::build_quadtree(), and TerrainRoetger::render_quadtree().

Here is the call graph for this function:

bool Quadtree::is_subdivided const QuadtreeNode node  )  [inline]
 

Testuje, zda je dany uzel dale rozdelen na poduzly.

Returns:
True, pokud je uzel node rozdelen na 4 poduzly. Jinak false.
Note:
Pokud vraci false, znamena to, ze jsme narazili na uzel stromu.

Definition at line 58 of file quadtree.h.

References get_pos(), and m_matrix.

Referenced by get_subnodes(), and TerrainRoetger::render_quadtree().

Here is the call graph for this function:

void Quadtree::set_leaf const QuadtreeNode node  )  [inline]
 

Definition at line 78 of file quadtree.h.

References get_pos(), and m_matrix.

Referenced by TerrainRoetger::build_quadtree().

Here is the call graph for this function:

void Quadtree::set_node const QuadtreeNode node  )  [inline]
 

Definition at line 74 of file quadtree.h.

References get_pos(), and m_matrix.

Referenced by TerrainRoetger::build_quadtree().

Here is the call graph for this function:


Member Data Documentation

bool* Quadtree::m_matrix [protected]
 

Matice pro reprezentaci quadtree. Potrebuje width*width (bytu) pameti.

Definition at line 88 of file quadtree.h.

Referenced by Alloc(), Free(), is_subdivided(), set_leaf(), and set_node().

QuadtreeNode Quadtree::m_root [protected]
 

Definition at line 85 of file quadtree.h.

Referenced by Alloc(), Free(), get_neighbor(), get_pos(), get_root(), and Quadtree().


The documentation for this class was generated from the following files:
Generated on Wed Apr 12 14:21:06 2006 for bjs by  doxygen 1.4.5