SLAM
Veřejné metody | Privátní metody | Privátní atributy | Seznam všech členů
Dokumentace třídy MapProcess

Třída pro práci s mapou. Zatím testovací a nepoužita. ...

#include <mapprocess.h>

Diagram dědičnosti pro třídu MapProcess

Veřejné metody

 MapProcess (QObject *parent=0)
 
void addSubmap (submap_t *submap)
 Přidávání submapy do této třídy. ...
 

Privátní metody

int getSectorIndex (int y, int actual)
 Vrací index sektoru na základě souřadnice y. ...
 
int insertSectorBefore (int before, int yStart)
 Funkce pro přidávání sektorů doprostřed pole. ...
 
void expandSectorArray ()
 Zvětšování pole sektorů o velikost 10.
 
void insertSquare (sector_t *sector, int x, int y)
 Vkládaní square_t do sektoru na dané souřadnice. ...
 
void expandSquareArray (sector_t *sector)
 Realokace pole square_t v daném sektoru o velikost 10. ...
 

Privátní atributy

int sectorsCount
 
int actualIndex
 
sector_t ** sectors
 

Detailní popis

Třída pro práci s mapou. Zatím testovací a nepoužita.

ZATÍM NEPOUŽITA A NEDOKONČENA.

Myšlenka byla taková, že mapa kvůli zrychlení prohledávání a zpracování bude rozdělena na částí tzv. sektory (sector_t). Sektory reprezentují osu y, kde každý sektor zabírá 100 jednotek (milimetrů). Každý sektor dále obsahuje dynamické pole squares (square_t). Toto pole představuje osu x, která je opět rozdělena po 100 jednotkách (milimetry). Struktura square_t obsahuje matici 100x100, což symbolizuje body (tam kde je hodnota > 0). Také je to uděláno tak, že nejsou úplně všechny sektory alokovány, pouze ty které se používají. K orientaci pak slouží v square_t proměnné top a bottom, aby se vědělo, jaké oblasti jsou pod a jaké nad daným čtvercem.

Takže výsledek by byl takový, že pokud by bylo potřeba prohledat dané místo tak by šlo lehce spočítat o který index sektoru a o který index čtverce se jedná (nemuselo by se prohledávat celou mapu). Další výhodou je, že hodnoty bodů by představovaly počet měření (bodů), které byly v tomto místě naměřené, takže by se dalo brát například pouze body, které mají vyšší hodnotu výskytu (filtrace).

Dokumentace k metodám

void MapProcess::addSubmap ( submap_t submap)

Přidávání submapy do této třídy.

Parametry
submap- Přidávaná submapa.

TODO: all reset

void MapProcess::expandSquareArray ( sector_t sector)
private

Realokace pole square_t v daném sektoru o velikost 10.

Parametry
sector- Sektor, v kterém se má provést realokace.
int MapProcess::getSectorIndex ( int  y,
int  actual 
)
private

Vrací index sektoru na základě souřadnice y.

Parametry
y- Souřadnice y.
actual- Aktualní index sektoru. Prvně se zkontroluje jestli se nejedná o následující sektor pro zrychlení.
Návratová hodnota
Index sektoru pro souřadnici y.
int MapProcess::insertSectorBefore ( int  before,
int  yStart 
)
private

Funkce pro přidávání sektorů doprostřed pole.

Parametry
before- Index sektrou, před který se má vložit nový sektor.
yStart- Souřadnice y, kde začíná vkládaný sektor.
Návratová hodnota
Vrací index sektoru.
void MapProcess::insertSquare ( sector_t sector,
int  x,
int  y 
)
private

Vkládaní square_t do sektoru na dané souřadnice.

Parametry
sector- Vkládaný sektor.
x- Souřadnice x (v milimetrech).
y- Souřadnice y (v milimetrech).

TODO: insert before


Dokumentace pro tuto třídu byla generována z následujících souborů: