#VRML V2.0 utf8 PROTO BLACKBOARD [ eventIn SFBool isok eventIn SFBool help eventOut SFBool openbb eventIn SFBool credits ] { EXTERNPROTO Layer3D[ exposedField SFVec2f translation exposedField SFVec2f size exposedField SFNode viewpoint exposedField MFNode children ] [ "urn:inet:blaxxun.com:node:Layer3D" "http://www.blaxxun.com/vrml/protos/nodes.wrl#Layer3D" "http://www.blaxxun.com/developer/contact/3d/vrml/demo/layer/nodes.wrl#Layer3D" ] DEF switch Switch { whichChoice -1 choice [ DEF layer Layer3D { viewpoint Viewpoint { position 0 0 1 } size 1 1 children [ # blackboard shape Shape { geometry Box { size 0.7 0.5 0.01 } appearance Appearance { material Material { # diffuseColor 1 0 0 transparency 0.4 } } } # blackboard close icon Transform { translation 0.32 0.22 0.011 children [ DEF butclosebb TouchSensor { } Shape { geometry Box { size 0.05 0.05 0.0001 } appearance Appearance { texture ImageTexture { url "images/close.jpg" } } } ] } Transform { translation 0 .20 .01 children [ Shape { geometry DEF title Text { #string "De poldermolen" fontStyle FontStyle { size .04 justify "MIDDLE" } } } ] } Transform { translation -0.22 0.2 .01 children [ Shape { geometry DEF text Text { fontStyle FontStyle { size .025 } } } ] } Transform { translation -0.15 -0.2 .01 children [ DEF Title4 Anchor { url "intro.wrl" description "To the introduction" children [ Shape { geometry Box { size .167 .04 .0001 } appearance Appearance { material Material { diffuseColor 1 1 1 emissiveColor 1 1 1 } texture ImageTexture { url "images\introduction.jpg" } } } ] } ]} Transform { translation .15 -.2 .01 children [ DEF TS_knopCreditsLS TouchSensor { } Shape { geometry Box { size .167 .04 .0001 } appearance Appearance { texture ImageTexture { url "images\credits.jpg" } } } ] } ] } ] } DEF scrbb Script { eventIn SFBool help IS help eventIn SFTime time eventIn SFBool bbok IS isok eventIn SFBool offbb eventIn SFBool credits IS credits eventOut SFVec2f trans field SFTime begintime 0 eventOut SFBool bb IS openbb eventOut SFTime starttijd eventOut SFBool on eventOut MFString title eventOut MFString text eventOut SFVec3f size eventOut SFInt32 onScreen url "javascript: function initialize () { trans = new SFVec2f(0,-1); bb = false; on = false; onScreen = -1; } // #if blackboard is ok, display title and texts // function bbok (value,timer) { // if (value) { // bb = true; // begintime = timer; // timerAan = true; // size = new SFVec3f(0.1, 0.1, 0.01); // title = new MFString(' Introduction - Guide Tour'); // text = new MFString( // '', // 'All 31 works will be present, including:', // '', // '(1) 12 Transitory objects for human use', // '', // '(2) 6 Objects, performances and installations', // '', // '(3) 6 Video Installations', // '', // '(4) 7 Abramovic works'); // on = true; // onScreen = -1; // } // } function help(value,timer) { if (value) { bb = true; begintime = timer; timerAan = true; size = new SFVec3f(0.1, 0.1, 0.01); title = new MFString(' Help'); text = new MFString( '', 'Hi there!', 'Welcome to the mini digital dossier about music.', 'This is a dossier built in VRML and can be considered', 'a proof of concept. For more information visit', 'http://www.few.vu.nl/~dossier05', '' ); on = true; onScreen = 0; } } function credits(value,timer) { if (value) { bb = true; // begintime = timer; // timerAan = true; size = new SFVec3f(0.1, 0.1, 0.01); title = new MFString(' Credits'); text = new MFString( '', 'This project has been developed by students of the Vrije ', 'Universiteit van Amsterdam and the Universiteit van Amsterdam ', 'as part of the course Multimedia Design Casus. This project ', 'was done in cooperation with Instituut Collectie Nederland ', '(Netherlands Institute of Cultural Heritage).', '', 'Contact person: Michela Negrini (michelanegrini@hotmail.com)', 'Supervisor (VU Amsterdam):Anton Eliens (eliens@cs.vu.nl)', '', 'Students:', 'Jina Menke, Tim Verweij, Eric de Boer, Yiwen Wang, Abeer', 'Mahdi, Olaf van Zon, Jurgen Koster, Chris van Riel, Pascal', 'Snijders Blok', ' januari 2005 ' ); on = true; onScreen = 0; } } // close blackboard function offbb (value,timer) { if (value) { bb = false; on = true; begintime = timer; } } // open blackboard function time(value) { if (bb) { if (value - begintime < 2) { trans.y = 1 - 0.5 * (value - begintime); } else { on = false; onScreen = 0; } } if (!bb) { if (value - begintime < 2) { trans.y = 0.5 * (value - begintime); } else { on = false; onScreen = -1; } } } " } DEF Timer TimeSensor { enabled TRUE loop TRUE } ROUTE TS_knopCreditsLS.isActive TO scrbb.credits ROUTE scrbb.title TO title.string ROUTE scrbb.text TO text.string ROUTE Timer.time TO scrbb.time ROUTE scrbb.trans TO layer.translation ROUTE butclosebb.isActive TO scrbb.offbb ROUTE scrbb.onScreen TO switch.whichChoice ROUTE scrbb.on TO Timer.enabled } BLACKBOARD {}