Vrstvy v schémach
Zavedenie vrstiev má za úlohu riadiť viditeľnosť objektov v schémach v závislosti od veľkosti zoomu schémy. Objekty majú definovanú viditeľnosť vo vrstvách a vrstvy viditeľnosť od zoomu.
Dátový model grafických objektov, nepodporujúci vrstvy, vyzeral nasledovne:
Objekty sú v ňom vykresľované podľa poradia a podľa svojej viditeľnosti. Vo viacvrstvovom riešení grafických objektov pribúdajú do definície schém vrstvy.
Dátový model grafických objektov pre kreslenie schémy vyzerá nasledovne:
Pri kreslení sa vyhodnotí viditeľnosť vrstvy a ak je vrstva viditeľná, nakreslí sa. Vo vrstve sa kreslia objekty, ktoré sú nakonfigurované ako viditeľné v tejto vrstve.
Vlastnosti tohto riešenia sú viditeľnejšie pri podrobnejšom pohľade na predchádzajúce obrázky, ktoré ukazovali len princíp novej vlastnosti schém - vrstiev.
Dátový model grafických objektov, ktorý nepodporoval vrstvy vyzeral takto:
Viacvrstvový dátový model grafických objektov pre kreslenie schémy je nasledovný:
Tu vidíme, že objekty pre vrstvy zdieľajú RefId na pripojenie pre zobrazovanie a ovládanie.
Parametre vlastnosti objektu sú rozšírene o viditeľnosť vo vrstve a navyše je možné prispôsobiť ich jednotlivým vrstvám.
Napríklad: Text "Žilina" vo vrstve 1 môže byť nahradený textom "Žilina - počet vlakových súprav 10" vo vrstve 5.
Ďalej môže mať zmenený font, farbu, umiestnenie...
Zobrazovanie v HI
Pri kreslení schémy sa viditeľnosť vrstvy vyhodnocuje podľa zoomu. Ak je vrstva viditeľná, nakreslí sa. Vo vrstve sa kreslia objekty, ktoré v nej majú definovanú viditeľnosť vo vrstve. Skript dostáva informáciu o zmene vrstvy prostredníctvom udalosti OnNewLayer.
Zoom schémy je robený prostriedkami windows, avšak existujú objekty nepodliehajúce zoomu. Ich rozmery a umiestnenie nastavuje skript, ktorý je o zmenách veľkosti zoomu informovaný udalosťou OnPictZoom.
Výber zoomu sa snaží zachovať pomer strán 1:1. Pomer v zobrazení je ešte ovplyvnený rozmerom schémy, t.j. ak táto modifikuje pomer zobrazenia, napr. natiahnutím iba v jednom smere, tak sa toto zachováva aj v zoome.
Zmeny vlastností objektov zo skriptu platia iba pre určité vrstvy, pre ktoré sa nastavujú funkciou %HI_LayersParams (len aktuálnu vrstvu, všetky vrstvy, alebo od - do vrstvy).
Zobrazenie vrstvy / zoomu môže byť nastavené funkciami zo skriptu:
%HI_SetZoom - nastaví sa zoom a podľa neho vrstva,
%HI_SetCurrLayer - nastaví sa vrstva a podľa nej zoom,
%HI_SetCurrLayerIgnoreZoom - špeciálna funkcia, ktorá nastaví vrstvu a tá bude viditeľná bez ohľadu na veľkosť zoomu.
Funkcia %HI_GetCurrLayer umožní zistiť, ktorá vrstva je aktuálne zobrazovaná.
Ovládanie grafických objektov schémy zo skriptu
Pri nastavovaní vlastností grafických objektov zo skriptu, pre schémy s vrstvami je možné pomocou funkcie %HI_LayersParams určiť, pre ktoré vstvy platí nastavovaný parameter. Nastavenie platí pre aktuálnu vrstvu, ale môže sa nastaviť aj pre všetky alebo pre vybrané vrstvy (rozsah od - do).
Vrstvové schémy sú vytvárané v grafickom editore.
V parametroch grafickej schémy sa zadávajú parametre vrstiev (počet a pomer zmenšenia (mierky ako pri mapách), rozsah, od ktorého je vrstva viditeľná, napr. 5 znamená pomer kreslenia 1:5).
Základnú prvú vrstvu tvorí rozlíšenie pre zoom 1:1 - napr. rozlíšenie schémy 8000:6000, v ktorom sa schéma nakreslí.
V nástrojovom paneli D2000 GrEditor sú k dispozícii ikony pre prácu s vrstvami:
Nastav aktívnu vrstvu - nastaví pracovnú vrstvu a zoom podľa vrstvy.
Kresli všetky vrstvy - zobrazí všetky objekty bez ohľadu na pracovnú vrstvu.
Výber pracovnej vrstvy je možné urobiť počas kreslenia v schéme stlačením CTRL + číslo požadovanej vrstvy.
V zozname spojení - všetky objekty, je pre vrstvové schémy uvedené, či je objekt zoomovaný (Z) a v ktorých vrstvách je kreslený (1,2,3,...).
Vrstvy sú zobrazené v paletke pre nastavenie parametrov grafických objektov.
1 | V titulkovom pruhu je zobrazené číslo aktívnej (pracovnej) vrstvy. |
2 | Políčka (1..10) určujú, v ktorých vrstvách je objekt kreslený. Políčka pre vrstvy, ktoré schéma neobsahuje, nie sú prístupné. |
3 | Kopírovanie parametrov medzi vrstvami. Po kliknutí na tlačidlo "P" sa zobrazí rozšírenie paletky. |
4 | Políčka pod písmenom P (parametre vrstiev) slúžia na automatické aplikovanie zmien parametrov v grafickom objekte aj na predchádzajúce / nasledovné vrstvy. |
5 | Ikona lupa označuje parameter vyjadrujúci, či je objekt zoomovaný pri zmene zoomu. Ak nie je, potom nepodlieha zoomu a jeho rozmery a umiestnenie sa nastavujú skriptom, ktorý je o zmenách veľkosti zoomu informovaný udalosťou OnPictZoom. |
6 | Pri vrstvách sa zobrazujú informácie, do ktorých vrstiev sa prenáša zmena parametrov. Významy symbolov:
|
Kreslenie v schéme
Novo vytvorený grafický objekt bude vytvorený vo všetkých vrstvách a jeho zmeny parametrov platia pre všetky vrstvy, až kým sa nezmení nejaký parameter v inej vrstve. Odvtedy budú jeho parametre menené v pracovnej vrstve a tiež vo vrstvách označených v políčkach v paletke Vlastnosti objektu.
Grafický objekt, vytvorený ako kópia iného grafického objektu pomocou myši alebo kláves, bude mať menené parametre umiestnenia (posun objektu) vo všetkých vrstvách o rovnakú zmenu, až kým sa nezmení nejaký parameter v inej vrstve. Odvtedy budú jeho parametre umiestnenia menené v pracovnej vrstve a tiež vo vrstvách označených v políčkach v paletke Vlastnosti objektu. Grafický objekt, vytvorený ako kópia iného grafického objektu cez systémovú schránku pomocou CTRL+C, CTRL+X a CTRL+V, bude umiestnený vo všetkých vrstvách vľavo hore. Pri posune sa pracuje iba s aktuálnou vrstvou.
Objekt môže mať v každej vrstve vlastné parametre, ktoré sa menia v paletke Vlastnosti objektu.
Parametre definované v paletke Pripojenie objektu, sú spoločné pre všetky vrstvy, t.j. objekty pre vrstvy zdieľajú RefId a pripojenia pre zobrazovanie a ovládanie.
Zmena vrstvy ruší vytváranie objektu a vytvára výber, ako pri výbere kliknutím na objekt.
Ak objekt skupiny nie je viditeľný v niektorej vrstve, je v danej vrstve zo skupiny akoby "odobraný", t.j. v skupine je stále zaradený, ale nepočíta sa s ním.
Výber objektov
Pre výber objektov v schémach s vrstvami platí nasledovné:
Každá vrstva má svoj zoznam vybraných objektov, ktorý sa použije pri zmene vrstvy. Ak vrstva, ktorá sa nastavuje, nemá vybrané objekty, použijú sa objekty z vrstvy, z ktorej sa do nej prepínate.
Vytvorenie nového objektu kreslením alebo kopírovaním, vykoná výber nového objektu vo všetkých vrstvách.
Výber objektu(ov) prebieha iba v jednej vrstve (výbery v iných vrstvách nie sú zmenené).
Kopírovanie objektov
Kopírovanie objektov cez schránku vloží objekty vľavo hore vo viditeľnej oblasti schémy v každej vrstve.
Kopírovanie objektov medzi schémami s rôznym počtom vrstiev
Pri kopírovaní zo schémy s vrstvami do schémy bez vrstiev nakopírujú objekty z aktívnej vrstvy (ak je aktívna napr. 3. vrstva, skopírujú sa objekty len z tejto vrstvy).
Pri kopírovaní do schém s viac vrstvami ako je schéma, z ktorej sa kopíruje - zvyšné vrstvy až po max. vrstvu majú nastavené dáta podľa poslednej vrstvy schémy, z ktorej sa kopíruje.
Pri kopírovani do schém s menej vrstvami ako je schéma, z ktorej sa kopíruje - nakopírujú sa iba platné vrstvy, zvyšné vrstvy až po maximálnu možnú vrstvu sa nastavia podľa obsahu poslednej cieľovej vrstvy.
Po stlačení tlačidla "P" sa zobrazí rozšírenie paletky, v ktorom sa nastavuje kopírovanie parametrov medzi vrstvami.
Políčka 1 - 10 určujú, do ktorých vrstviev sa nakopírujú dáta z aktuálnej vrstvy.
Umiestnenie - kopírujú sa parametre umiestnenia.
Parametre - kopírujú sa všetky parametre okrem umiestnenia.