Web-grafika (VRML) 9. gyakorlat Kereszty Gábor
Prototípus PROTO prototípusnév [ field fieldTypefieldName defaultValue exposedField fieldTypefieldName defaultValue eventIn eventInType eventInName eventOut eventOutType eventOutName ] { prototípus törzse }
Prototípus példa PROTO Nyaloka [ exposedField SFVec3f meret exposedField SFColor szin ]{]{ Transform{ scale IS meret children[ Shape{ appearance Appearance{ material Material{ diffuseColor IS szin }} geometry Cylinder{ height 1.25 radius.1}}, Transform{ translation children[ Shape{ appearance Appearance{ material Material{ diffuseColor IS szin }} geometry Sphere{ radius.375}}]} ]} } Nyaloka { szin 1 0 0}
Prototípus: Feladat Készíts egy hóember prototípust, mely 3 gömbből áll! Paramétereken keresztül lehessen állítani a hóember méretét, és színét. Az alapértelmezett szín fehér legyen, a méretet magatok adjátok meg.
Script Script { field fieldTypefieldName initialValue eventIn eventInType eventInType eventOut eventOutType eventOutType url [] mustEvaluate FALSE directOutput FALSE }
Script függvények function initialize ( ) { } A vrml világ megnyitásánál fut le, például a scriptben használt változók kezdeti inicializálásra is alkalmas. function shutdown ( ) { } A vrml világ bezárásánál fut le. Felhasználó által definiált függvények.
Script példa DEF Kiir Script { url “javascript: function set_f( f, ts){ str[0] = label + ‘ : ’ + Math.floor(f*100)/100;}” field SFString label “fraction” eventIn SFFloat set_f eventOut MFString str } DEF ido TimeSensor{ loop TRUE} Shape{ geometry DEF szoveg Text{}} ROUTE ido.fraction_changed TO Kiir.set_f ROUTE Kiir.str TO szoveg.set_string
Script példa 2. Shape{ geometry DEF szoveg Text{}} DEF Kiir Script { directOutput TRUE url “javascript: function set_f( f, ts){ str.set_string[0] = label + ‘ : ’ + Math.floor(f*100)/100;}” field SFString label “fraction” eventIn SFFloat set_f field MFString str USE szoveg } DEF ido TimeSensor{ loop TRUE} ROUTE ido.fraction_changed TO Kiir.set_f
Script: Feladat Használd az előző feladatbeli hóembert! Írj script-et, mely beállítja, és állandóan változtatja a hóember színét. Figyelj rá, hogy a diffuseColor RGB szinekből áll! Valamint ezek értéke 0 és 1 között változhat!