media @ VU
[] readme course preface I 1 2 II 3 4 III 5 6 7 IV 8 9 10 V 11 12 afterthoughts appendix references examples resources _

talk show tell print

music-dossier-buttonbar.vr

music-dossier-buttonbar.vr (wrl ) [ flux / bitmanagement / cortona / octaga ]


  
  
  PROTO ButtonBar [
          eventIn        SFFloat        endTransparency
  ]{
          DEF buttonBarSw Switch {
                  whichChoice        0
                  choice [
                          Group {
                                  children [
  
  Transform {
          translation -26 7.1 -0.5
          rotation 0 1 0 1.57
  
          children [
                  Shape {
                          geometry Box {
                                  size 4 18.8 0
                          }
                          appearance Appearance {
                                  texture        ImageTexture {
                                          url        "models/buttonBar/music_poster_menu.jpg"
                                  }
                                  material DEF abrMat Material {
  
                                          specularColor 1 1 1
                                          ambientIntensity 1
                                          emissiveColor 1 1 1
                                          diffuseColor 1 1 1
                                          shininess 1
                                  }
                          }
                  }
                          ]
                  }
                          
          
                  Transform {
          translation -24.5 7.1 -2.5
          rotation 0 1 0 0
  
          children [
                  Shape {
                          geometry Box {
                                  size 3 18.8 0 
                          }
                          appearance Appearance {
                                  texture        ImageTexture {
                                          url        "models/buttonBar/menuback.jpg"
                                  }
                                  material DEF buttonBackMat Material {
                                          diffuseColor 0.1 0.1 0.1
                                          specularColor .1 .1 .1
                                          ambientIntensity 0.1
                                          emissiveColor 0.1 0.1 0.1
                                          shininess 0
  
                                  }
                          }
                  }
          ]
  }
  ]
  }
  ]
  }
          DEF        timeSensor TimeSensor {
                  enabled        TRUE
                  loop TRUE
          }
  
          DEF        homeModelScript Script {
                  eventIn SFTime time
                  eventIn        SFFloat        setTransparency        IS endTransparency
                  field SFFloat beginTransparency 0
                  eventOut SFFloat transparency
                  field SFTime beginTimeTransparency 0
                  field SFBool transparencyEffectEnabled FALSE
                  field SFFloat totalTimeTransparency 2
                  eventOut SFInt32 whichchoice
              eventOut MFString rollOverText 
  
                  url        "javascript:
                  function initialize() {
                          transparency = beginTransparency;
                  }
  
                          // simple interpolation:
                          // if enabled:
                          // compute factor: what fraction of total interpolation time has passed
                          //    =  (currencttime - starttime)/ totalTime
                          // if this factor < 1: compute the value of the interpolated variable
                          // if this factor >= 1: stop the interpolation, set the interpolated variable to the end value
  
                  function time(value) {
                          if (transparencyEffectEnabled) {
                                  var factor = (value - beginTimeTransparency) / totalTimeTransparency;
                                  if (factor < 1) {
                                          transparency = factor * (setTransparency - beginTransparency) + beginTransparency;
                                  } else {
                                          transparency = setTransparency;
                                          transparencyEffectEnabled = false;
                                          if (setTransparency == 1) whichchoice = -1;//remove the buttonbar when completely transparent
  
                                  }
                          }
                  }
  
                  //begin interpolation: starttime of interpolation is current time
                  //sets start value of interpolated variable, enables interpolation
                  function setTransparency (value,time) {
                          //print('transparantie is: ');
                          whichchoice = 0;
                          beginTimeTransparency = time;
                          beginTransparency = transparency;
                          transparencyEffectEnabled = true;
                  }
                  "
  
          }
  
           ROUTE homeModelScript.transparency        TO buttonBackMat.transparency
           ROUTE homeModelScript.transparency        TO abrMat.transparency
           ROUTE homeModelScript.whichchoice TO buttonBarSw.whichChoice
           ROUTE timeSensor.time TO homeModelScript.time
  
  }
  
  ButtonBar {}
  


(C) A. Eliëns 21/5/2007

You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.