Scrollbar
PROTO GenericScrollbar [
field MFNode button Group {}
field MFNode up_arrow Group {}
field MFNode down_arrow Group {}
field SFFloat bar_length 1
field SFFloat bottom_value 0
field SFFloat top_value 1
field SFFloat init_value 0
field SFTime change_time 5
eventOut SFFloat value_changed
]
Obecný scrollbar vycentrovaný okolo počátku natažený ve směru osy
y. Uzly button, up_arrow, down_arrow
určují vzhled jednotlivých složek, bar_length délku tahací
oblasti, bottom_value hodnotu ve spodní poloze, top_value
hodnotu v horní poloze, init_value počáteční hodnotu.
Čas change_time určuje, jak dlouho trvá přechod z minimální
do maximální hodnoty, je-li držena šipečka.
Tahátko je uděláno pomocí PlaneSensoru, šipky pomocí
TouchSensoru a TimeSensoru.
Vše ovládá jeden skriptík. Ten přistupuje na jednotlivé fieldy
a posílá eventOut value_changed. Navíc má následující
"interní" položky:
- eventIn SFVec3f button_moved
Posílán, pohnul-li se PlaneSensor tahátka. Podle
pozice spočítá novou hodnotu a pošle ji ven.
- eventIn SFBool up_arrow_active
eventIn SFBool down_arrow_active
Posílají se, je-li zmáčknuta nebo puštěna jedna ze šipek.
V active_arrow se zapamatuje, která šipka byla zmáčknuta
(resp. že žádná zmáčknuta není).
V arrow_time se uloží čas zmáčknutí.
- eventIn SFTime arrow_pressed
Posílá se od TimeSensoru, je-li některá šipka zmáčknutá.
Na zálkadě uplynulého času a change_time se posune tahátko.
Přepočítá a pošle se hodnota nová scrollbaru.
- eventOut SFVec3f button_pos
Pozice tahátka
- eventOut SFVec3f up_arrow_pos
Pozice horní šipky
- eventOut SFVec3f down_arrow_pos
Pozice dolní šipky
- eventOut SFVec2f sensor_min
Dolní pozice PlaneSensoru
- eventOut SFVec2f sensor_max
Horní pozice PlaneSensoru
- eventOut SFVec3f sensor_offset
Pozice PlaneSensoru
StdScrollbar je GenericScrollbar se standardními
objekty pro tahátko a šipky, stačí definovat material a
texture.
Colorize
Prototyp triviálního skriptíku, který přijímá nezávisle tři
floatové vstupy a dělá z nich barvu.
PROTO Scalar2Color [
eventIn SFFloat set_r
eventIn SFFloat set_g
eventIn SFFloat set_b
field SFColor init_color 1 1 1
eventOut SFColor color_changed
]
Vlastní skriptík pak obsahuje přesně totéž, snad ničím nikoho
nepřekvapí.
Color panel
Prototyp objektu složeného ze tří scrollbarů. Ty ovládají jednotlivé
barevné složky RGB. Scrollbary mají odpovídající barvy (červená,
zelená, modrá) a mění intenzitu dle svojí hodnoty. Navíc celý objekt
posílá ven výslednou barvu. Neobsahuje žádný skript, takže to je
tak vše.
Back