clickbox


  
  Background { skyColor 50 10 10 }
  Viewpoint { position 0 0 1 }
  
  EXTERNPROTO ClickBox [
    exposedField SFVec2f translation
    exposedField SFVec2f font_translation
    exposedField SFVec2f size
    exposedField MFString string
    exposedField MFString url
    exposedField SFBool filled
    field SFFloat fontsize
    field SFVec2f rectangle_size
    eventOut SFInt32 choice_changed
    eventOut SFTime touchTime_changed
    eventOut SFBool touchSwitch
  ]
  "shader-layer.wrl#ClickBox"
  
  EXTERNPROTO SceneRender [
    field SFInt32 width
    field SFInt32 height
    exposedField SFNode vshader
    exposedField MFString pshader
    eventIn MFString scene
  ]
  "shader-scenerender.wrl#SceneRender"
  
  # ==================== Misc ====================== #
  
  DEF WorldInfo WorldInfo {
    title "VRML NPR Postprocessor 1.0"
    info [
        "VRML NPR Postprocessor 1.0",
        "S.Yin Visual Design Project",
    ]
  }
  
  DEF Background Background {
    skyColor .2 .2 .2
  }
  
  DEF Navigation NavigationInfo {
    headlight FALSE
    type "ANY"
  }
  
  DEF Viewpoint Viewpoint {
    position 2 1.9 -1
    description "default"
  }
  
  # ================ Render Node =============== #
  DEF scene SceneRender {
    width 1024
    height 768  
    ##pshader "local/shader/general.phl"
    pshader "local/shader/toon2.phl"
    ##pshader "phl-toon2.vr"
  }
  
  DEF shader_script Script {
    eventOut SFNode vshader
    eventOut MFString pshader
    eventOut MFString newurl
  
    field SFNode v_general VertexShader 
          {
                  url "hlsl:
      float4x4 modelViewProjectionT;
  
      struct VS_OUTPUT
      {
              float4 Pos  : POSITION;
        float2 Tex  : TEXCOORD0;
      };
  
      VS_OUTPUT main (
              float4 Pos  : POSITION, 
              float3 Norm : NORMAL, 
        float2 Tex  : TEXCOORD0
      )
      {
              VS_OUTPUT Out;
              Out.Pos = mul( Pos, modelViewProjectionT );              
              Out.Tex = float2( Tex.x, 1.0 - Tex.y ); // Y FLIP
        return Out;
      }
      "
          }
    
    field MFString p_general "local/shader/general.phl"
    field MFString p_toon    "local/shader/toon.phl"  
    field MFString p_toon2   "local/shader/toon2.phl"
  
    eventIn SFTime reset_touchTime
    eventIn SFTime toon_touchTime
    eventIn SFTime storyboard_touchTime
    eventIn MFString scene_changed
  
    url "javascript:
    function initialize(v, t) {
      Browser.setHeadlight(true);
      Browser.showConsole(false);
      Browser.setOption('autoMipMap', 'TRUE');
      Browser.setOption('mipmap', 'TRUE');
      Browser.setOption('mipMapLodBias', '0.0');
      Browser.setOption('antiAliasing', 'TRUE');
  
      vshader = v_general;  
      //newurl = 'logo.wrl';
      newurl = 'shader-camera.wrl';
    }
  
    function reset_touchTime(v, t) {
      Browser.setOption('mipmap', 'FALSE');    
      vshader = v_general;
      pshader = p_general;
    }
  
    function toon_touchTime(v, t) {    
      Browser.setOption('mipmap', 'TRUE');    
      Browser.setOption('mipMapLodBias', '3.0');    
      vshader = v_general;
      pshader = p_toon;
    }
  
    function storyboard_touchTime(v, t) {
      Browser.setOption('mipmap', 'FALSE');   
      vshader = v_general;
      pshader = p_toon2;
    }
  
    function scene_changed(v, t) {
      newurl = new MFString(v, 'shader-valid.wrl');  
    }
    "
  }
  
  ROUTE shader_script.vshader TO scene.vshader
  ROUTE shader_script.pshader TO scene.pshader
  ROUTE shader_script.newurl TO scene.scene
  
  # =================== Menu =================== #
  DEF Reset ClickBox {
    translation 0 0
    size .1 .07
    rectangle_size 1.5 .5
    font_translation -.45 -.14
    fontsize 0.4  
    string "Reset"
  }
  
  DEF Toon ClickBox {
    translation .08 0
    size .1 .07
    rectangle_size 1.5 .5
    font_translation -.41 -.14
    fontsize 0.4  
    string "Toon"
  }
  
  DEF StoryBoard ClickBox {
    translation .16 0
    size .1 .07
    rectangle_size 1.5 .5
    font_translation -.41 -.14
    fontsize 0.4  
    string "Story"
  }
  
  ROUTE Reset.touchTime_changed TO shader_script.reset_touchTime
  ROUTE Toon.touchTime_changed TO shader_script.toon_touchTime
  ROUTE StoryBoard.touchTime_changed TO shader_script.storyboard_touchTime
    
  
    
  

(C) A. Eliëns 2/9/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.