90 likes | 225 Views
Web-grafika (VRML) 9. gyakorlat. Kereszty Gábor. Prototípus. PROTO prototípusnév [ field fieldType fieldName defaultValue exposedField fieldType fieldName defaultValue eventIn eventInType eventInName eventOut eventOutType eventOutName ] {
E N D
Web-grafika (VRML)9. gyakorlat Kereszty Gábor
Prototípus PROTO prototípusnév [ field fieldType fieldName defaultValue exposedField fieldType fieldName defaultValue eventIn eventInType eventInName eventOut eventOutType eventOutName ] { prototípus törzse }
Prototípus példa PROTO Nyaloka [ exposedField SFVec3f meret 1 1 1 exposedField SFColor szin 0.7 0.7 0.7 ]{ Transform{ scale IS meret children[ Shape{ appearance Appearance{ material Material{ diffuseColor IS szin }} geometry Cylinder{ height 1.25 radius .1}}, Transform{ translation 0 .8 0 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 fieldTypefieldNameinitialValue eventIn eventInType eventInType eventOut eventOutType eventOutType url[] mustEvaluateFALSE directOutputFALSE }
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!