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).
Tvorba vrstvových schém
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.
Kopírovanie parametrov medzi vrstvami schémy
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.
Pridať komentár