Objekty virtuální železnice
Na ploše kolejiště jsou umístěny různé objekty, které jednak tvoří model železniční sítě s železničními vozidly, dále vytváří krajinný reliéf a obsazují jej různými statickými či dynamickými objekty (stavby, železniční příslušenství atd.). V současné době jsou řešeny koleje a vozidla, ostatní je záležitost dalších verzí.
Kolej je specifikována především počáteční polohou a směrem své orientace. Další popis pak závisí na typu koleje: u rovné koleje je stanovena její délka, u oblouku poloměr a úhel obloukové úseče, u výhybek postačí délka (parametry odbočných kolejí se dopočtou), musí se jenom specifikovat, na kterou stranu má odbočka směrovat:

Navíc jednoduchá výhybka ještě určuje, který z jejích vstupů je výchozí. U křižovatkové výhybky se zase zadává, zda druhý vstup leží po levé nebo pravé straně čelního vstupu. Podobně je popsána i jednoduchá křižovatka, která ale dovoluje provoz jen v přímých směrech. Více přiložené obrázky:
Od verze 0.5 jsou k dispozici ještě dva další objekty. První z nich je určitou modifikací výhybky, jde však o samostatný objekt. Je to oblouková výhybka, která existuje ve dvou variantách - jako výhybka s oblouky na stejnou stranu a jako výhybka symetrická s oblouky do opačných stran:

Druhým objektem je točna. Ta má jeden vstup a libovolný počet (smysluplných) výstupů. K výstupům lze připojovat pouze rovné koleje:

Poloha každého objektu je popsána třemi souřadnicemi, tedy i výškou. Dána je vždy výška počátku koleje, zatímco výška konce se odvozuje z výšky koleje následující. Výška mezi počátkem a koncem se odvozuje interpolací.
Nezobrazované oblasti
Nezobrazované oblasti jsou oblasti nad objektem, které nezobrazují zvolenou část objektu. Pomocí nich lze například zakrýt úsek koleje, nad níž je vedena jiná kolej, simulovat tunel apod.:

Nezobrazované oblasti jsou zatím řešeny provizorně a vztahují se pouze k rovným kolejím. Jsou určeny úsekem definovaným pomocí vzdáleností od začátku koleje. Tato omezení jsou ale dočasná, neboť hodlám celou techniku překrývání a skrývání objektů přepracovat.
Nezobrazovaná oblast se vkládá v editačním režimu pomocí myši po spuštění povelu Editace/Nezobrazovaná oblast. Myší se ukáže na požadovaný začátek oblasti a stiskne levé tlačítko. Pak se myší vyznačí požadovaný úsek a tlačítko pustí. Obdobně lze nezobrazovanou oblast zmenšit či zrušit, anebo spojit s jinou oblastí.
Kolej
Je základní konstrukční prvek kolejiště. Vždy je definována počátkem, směrem a výškou. Existuje několik kolejových objektů popsaných dalšími atributy. V současné době to jsou:
Rovná kolej - je určena délkou.
Oblouk - je určen poloměrem a úhlem. Navíc existuje speciální varianta oblouku, která slouží jako doplňkový prvek k výhybce a křižovatkové výhybce. Je určena délkou odpovídající výhybky (křižovatkové výhybky).
Výhybka - je určena délkou (poloměr a úhel odbočky se počítá z délky a rozchodu)a polohou odbočky (zda je vlevo nebo vpravo). Navíc počátek smí být umístěn na kterémkoliv konci výhybky(na rozdíl od křižovatkové výhybky).
Oblouková výhybka - je určena poloměrem a úhlem vnějšího oblouku, a dále příznakem, který určuje, jde-li o výhybku s oblouky na stejnou stranu či s oblouky na opačné strany (symetrická výhybka).
Křižovatková výhybka - je určena délkou (poloměr a úhel odbočky se počítá z délky a rozchodu) a polohou druhého vstupu (zda je vlevo nebo vpravo).
Křižovatka - je určena délkou a polohou druhého vstupu (zda je vlevo nebo vpravo).
Točna - je určena průměrem točny a úhly jednotlivých výstupů.
Výhybky lze ovládat několika způsoby:
Vlakem se přehodí výhybka okamžitě, zatímco v ostatních případech existuje asi
třísekundová prodleva, než přehození proběhne. Konec přehození je detekován
zprávou NTF_SWITCHSTATE a navíc lze stav výhybek průběžně sledovat pomocí
povelu CTR_GETSWITCHSTATE.
Podobně jako výhybky lze ovládat i točnu:
V obou případech se točna animovaně otáčí k další pozici, zatímco v editačním
režimu přeskakuje na další pozici okamžitě.
Větev
Větví se rozumí spojitá síť tvořená kolejemi stejného rozchodu. Mezi dvěma libovolnými body větve vždy existuje cesta, kterou může projet vlak.
Větve stejného rozchodu lze spojit, přičemž vznikne jediná větev.
Momentálně umí program načíst jenom jednu větev.
Kolejiště
Kolejiště je tvořeno jednou nebo (v budoucích verzích) více větvemi. Ty jsou uloženy v souboru trd (formát je popsán v souboru Formáty souborů.txt). V sekci [Trains] se lze odkázat na soubor typu vls s popisem vlaků, které budou na kolejišti rozmístěny.
Zařazování vlaků na kolejiště přes sekci [Trains] a soubory vls je ale jen dočasné řešení a v budoucích verzích s ním nepočítám. Jejich funkci převezme některá z připravovaných doprovodných aplikací (Správce vlaků).
Vůz je definován dvěma body, které představují polohu svislé osy jeho dvou náprav (přední a zadní) anebo polohu otočných čepů vícenápravových podvozků. Tyto body leží vždy nad osou koleje a vzdálenost mezi nimi je konstantní. Při posunu vozu se bod příslušející přední nápravě posune po ose koleje o odpovídající úsek (ten je dán rychlostí pohybu), zatímco poloha druhého bodu je dopočtena tak, aby byla v konstantní vzdálenosti od první nápravy a ležela nad osou koleje. Vůz je zobrazen (v současné době) jako barevný obdélník, jehož poloha je vůči bodům náprav pevně daná a je specifická pro určitý typ vozu:

Barva vozů včetně lokomotiv je nyní dána údajem v souboru .vzd a prohlédnout či editovat ji lze pomocí Organizátoru. Pokud vůz disponuje výkonem, je považován za lokomotivu, a ta se, pokud je vlak vybrán, zobrazuje žlutě:

Vlak
Vlak je tvořen jedním nebo více vozy. Není podmínkou, aby měl lokomotivu. Výkon vlaku je součtem výkonů všech vozů. Volitelně lze výkon zvolených vozů ve vlaku potlačit (tažená lokomotiva). Pohyb vlaku lze ovládat buď přímo z programu Železnice (dočasné řešení), nebo z některé vnější aplikace (v současné době jsou k dispozici Strojvůdce 1 a Strojvůdce 2). Pohyb vlaku je odvozen od fyzikálních zákonů, takže např. odbržděný vlak na svahu se samovolně rozjede jako ve skutečnosti. Vlak lze rozpojovat do více vlaků a ty naopak zase spojovat. Vlak může obsahovat i více lokomotiv, ty se pak svým výkonem podílí na celkovém výkonu vlaku. Je však možné kteroukoliv z lokomotiv označit jako taženou, a ta se pak chová jako běžný tažený vůz.
Signály jsou objekty vázané na určité místo určité koleje, které mohou jednak nabývat různých stavů a jednak detekovat průjezd vlaku. O tom všem pak prostřednictvím povelů informují okolní aplikace.
Dlouho jsem váhal s volbou názvu - signály v Železnici jsou přece jenom širší pojem, než jak je tomu na železnici skutečné. Zahrnují pod sebe železniční návěstí všeho druhu (jedno i více znakových včetně pokynů dávaných skutečnými osobami) a plní funkci čidel. Bude-li v následujícím textu použito označení signál, má se na mysli tento objekt.
Signály se dělí do několika kategorií. Jednak je to kategorie klasických návěstí - různá světelná a mechanická návěstí, návěstí jednoznaková (různé “cedule“ jako rychlostníky, skloníky atd.), či návěstí, které si jako návěstí často ani neuvědomujeme (např. výpravčí dávající povel k odjezdu, konec nástupiště - tedy v případě, že tam není odpovídající tabulka atd.). Společným znakem těchto signálů je, že nabývají stavů, které jsou viditelné z přijíždějícího vlaku, a tudíž je možné, aby se vlak podle toho zachoval. Chování vlaku ale není ovládáno programem Železnice, ale tím, kdo vlak právě řídí. Může to být přímo uživatel (pak by se měl signály řídit), nebo nějaká aplikace (např. Strojvůdce 2).
Průjezd vlaku detekuje každé návěstí, pokud ale v požadovaném místě žádné není, lze použít čidlo. Je to neviditelný signál, který pouze podává zprávy o průjezdu vlaku.
Speciální účel plní další neviditelný signál stanice. Nese v sobě speciální stav, který odpovídá názvu stanice. Tento signál je třeba umístit na všechny vjezdové koleje stanice, neboť podle nich se určuje, že vlak do stanice vjel nebo ji opustil.
Signály jsou zobrazovány jako různobarevné kroužky umístěné vedle koleje (návěstí) nebo na ose koleje (čidla a označení stanice):

Při detekování průjezdu vlaku jsou vysílány zprávy NTF_SIGNALSTATE, které oznamují začátek i konec vlaku, směr, ze kterého vlak k signálu přijel a případný stav signálu. Podrobný popis je v souboru Řízení.txt.
Základní charakteristikou signálů je to, že mohou nabývat jednoho či více různých stavů. Stav není nic jiného než textový řetězec s libovolným obsahem. Obvykle se používá text, který popisuje stav, ve kterém se signál nachází (např. “Rameno nahoře“, “Volno“, “Stát“, “Odjezd“, “Max. rychlost 30 km/h“, “Svítí zelené a bliká žluté světlo“ atd.). Každý stav je popsán ve vlastnostech signálu (v souboru sgd). Ten, kdo stavy signálu nastavuje nebo je interpretuje (obvykle nějaká připojená aplikace), musí význam jednotlivých stavů znát. To by ale mohlo být na úkor obecnosti - proto lze každému stavu přiřadit jeden či více atributů, které význam konkrétního stavu zobecňují a jsou pevně definovány (např. ATR_STOP, ATR_FREE,…).
Mezi stavem a vizuálním vzhledem signálu je určen vztah. Momentálně jsou ale signály zobrazovány pouze jako kroužky a každému stavu lze přiřadit nějakou barvu. Časem by však toto schematické zobrazení mělo nahradit zobrazení skutečného vzhledu příslušného signálu.
Stavby
Stavby jsou pouze doplňkové objekty na kolejišti. Pod ně spadá vše, co nemá bezprostřední vliv na provoz vlaků, co vytváří pouhou kulisu na kolejišti a co se nepohybuje. V současné verzi stavba představuje pouze prostor, do kterého se časem umístí něco konkrétnějšího (budova, most, sloup atd.). V původním provedení šlo stavby pouze vyplnit určitou barvou:

Nyní lze stavby také vyplňovat obrázkem, typicky pohledem zhora. Získat jej lze z různých leteckých map, které jsou dnes již snadno dostupné (Mapy.cz, Google Maps apod.):

Stavba nemusí být pouze obdélník, ale lze ji též znázornit jako polygon, jehož hrany mohou být podle potřeby i kruhové úseče:

Stavby jsou doplněny parametrem vrstva. Vrstva určuje pořadí, v jakém budou na kolejišti stavby vykreslovány. Stavba s nižší hodnotou vrstvy bude vykreslena dříve. I když se do budoucna počítá s hodnotami vrstev 0 až 255, momentálně jsou obslouženy pouze hodnoty 0 a 128. Stavby s vrstvou 0 jsou kresleny před vykreslením kolejí, budovy s vrstvou 128 až po něm. V prvém případě mohou stavby představovat např. mostovku, v druhém pak např. zastřešení nástupiště nebo budovu depa, do které může lokomotiva zajet.
Stavby nejsou svázány s kolejovou sítí, mám ale pocit, že alespoň u některých staveb to bude nutné zavést (mosty, tunely atd.).
Plní funkci určitých orientačních bodů na kolejišti. Podobně jako stavby nejsou vázány na kolejovou síť. V podobě kříže jsou na kolejiště umisťovány jako body, které slouží jako pomůcka při výstavbě tratě. Je vhodné si před stavbou zjistit souřadnice několika výrazných míst, ty na kolejišti pomocí míst označit a pak začít s vlastní výstavbou. Některé podrobnosti najdete v popisu výstavby kolejiště a ovládacího panelu. Nově lze místa odečítat přímo z mapy ČR v programu Ortomapa.

Mezníky
Rovněž ukazují určité polohy v kolejišti, jsou však pevně svázány s určitou kolejí. Jejich hlavní funkce spočívá ve výpočtu kilometrické vzdálenosti na trati. Mezníky se ukládají na místa, u nichž je kilometrická vzdálenost dobře známá a které lze přesně lokalizovat např. z mapy. Při určování kilometrické vzdálenosti na jiné části trati se vychází z polohy nejbližších mezníků a do výpočtu se zahrnuje i korekce na možné chyby v jejich nastavení.
Na kolejišti jsou zobrazovány jako fialový kříž:

Na obrázku je vidět mezník určující kilometrickou vzdálenost 397,317 u portálu tunelu před stanicí Ošelín.
|
[Colors] |
|
|
Background=(0,85,42) |
- barva pozadí kolejiště |
|
Rail=(157,122,65) |
- barva kolejnic |
|
SelectedRail=(220,160,50) |
- barva vybrané kolejnice (editační režim) |
|
Locomotive=(193,9,9) |
- barva nevybrané lokomotivy |
|
SelectedLocomotive=(248,162,26) |
- barva vybrané lokomotivy |
|
Wagon=(152,151,161) |
- barva vozů |
|
GreenSignal=(0,204,0) |
- barva signálního světla ukazující směr přehození výhybky (povolený směr) |
|
RedSignal=(255,0,21) |
- barva signálního světla ukazující směr přehození výhybky (zakázaný směr) |
|
EditTab=(255,255,255) |
- barva editačních oušek vybrané koleje |
|
EditLink=(255,255,153) |
- barva spojovací linky při propojování kolejí |
|
Build=(200,200,200) |
- barva staveb |