Język opisu budynku - duszakpawel/IndoorNavigation GitHub Wiki

Specyfikacja:

B - beacon (a dokładniej ściana (0.5 m) na której znajduje się beacon bo tylko taki przypadek jest możliwy)

D - drzwi (punkt docelowy; jeśli w budynku znajdują się drzwi przez które trzeba przejść by gdzieś dojść to na mapie nie są one zaznaczone) (0.5 m)

- - ściana (0.5 m); bloki poziome oznaczające muszą być oddzielane spacją dla efektu wizualnego

~ - narożnik ściany (0 m)

E - winda (0.5 m)

S - schody (0.5 m)

Wszystko ma szerokość 0.5 m żeby ładnie się to wszystko "zgrywało". Jeśli drzwi zajmują w rzeczywistości 1.5 m należy je wówczas oznaczyć na mapie w postaci - D - (nie ma to żadnego znaczenia).
Poszczególne komponenty odpowiadają kolejnym elementom tablic zdefiniowanym na początku pliku.

 <Rooms floor="3">
    	<Room>312</Room>	// numer pokoju
    	<Room>313</Room>
        <Room>314</Room>
 </Rooms>
 <Rooms floor="2">
    	...
 </Rooms>
 <Beacons floor="2">
       <Beacon>1</Beacon>		// id beacona
       <Beacon>2</Beacon>	
       <Beacon>3</Beacon>	
 </Beacons>
 <Elavators floor="0">
           <Elevator id="0">
                <End>0</End>
                <End>1</End>
                <End>2</End>
           </Elevator>
 </Elevators>
 <Stairs floor="0">
      <Stair id="0" mode="twoway" end="2"></Stair> 
      <Stair id="1" mode="oneway" end="3"</Stair>
      <Stair id="3" mode="disabled"></Stair>
 </Stairs>

mode: oneway, twoway, disabled;
end: piętro na którym kończą się schody/winda

Poszczególne komponenty grupowane są w kolekcje. W języku istnieją również znaczniki:
description - okalający cały opis
maps - właściwa definicja mapy
map - definicja piętra

Przykładowy plik:

http://pastebin.com/APwNYRbf

⚠️ **GitHub.com Fallback** ⚠️