SLAM
|
Třída pro práci s mapou. Zatím testovací a nepoužita. ...
#include <mapprocess.h>
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 |
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).
void MapProcess::addSubmap | ( | submap_t * | submap | ) |
Přidávání submapy do této třídy.
submap | - Přidávaná submapa. |
TODO: all reset
|
private |
Realokace pole square_t v daném sektoru o velikost 10.
sector | - Sektor, v kterém se má provést realokace. |
|
private |
Vrací index sektoru na základě souřadnice y.
y | - Souřadnice y. |
actual | - Aktualní index sektoru. Prvně se zkontroluje jestli se nejedná o následující sektor pro zrychlení. |
|
private |
Funkce pro přidávání sektorů doprostřed pole.
before | - Index sektrou, před který se má vložit nový sektor. |
yStart | - Souřadnice y, kde začíná vkládaný sektor. |
|
private |
Vkládaní square_t do sektoru na dané souřadnice.
sector | - Vkládaný sektor. |
x | - Souřadnice x (v milimetrech). |
y | - Souřadnice y (v milimetrech). |
TODO: insert before