Animating Texture Coordinates

#VRML V2.0 utf8

Viewpoint { position 0 0 5 }
NavigationInfo { type [ "EXAMINE", "ANY" ] }

Shape {
   appearance Appearance { 
      texture ImageTexture { url "Nails.jpg" }
   }
   geometry IndexedFaceSet {
      solid FALSE
      coord Coordinate { 
	 point [ 1 1 0, -1 1 0, -1 -1 0, 1 -1 0 ]
      }
      coordIndex [ 0 1 2 3 ]
      texCoord DEF TC TextureCoordinate { 
	 point [ 1 1, 0 1, 0 0, 1 0 ]
      }
   }
}

DEF TIMER TimeSensor {
   cycleInterval 2
   loop TRUE
}

DEF SCRIPT Script {
   eventIn SFFloat set_fraction
   eventOut MFVec2f tcoords
   url "vrmlscript:

function set_fraction(val) {
   v1 = .1*Math.sin(val*2*Math.PI);
   v2 = .1*Math.cos(val*2*Math.PI);
   v3 = .1*Math.sin(val*4*Math.PI);
   v4 = .1*Math.cos(val*4*Math.PI);

   tcoords = new MFVec2f();
   tcoords[0] = new SFVec2f(v1 + 1, v2 + 1);
   tcoords[1] = new SFVec2f(v2 + 0, v1 + 1);
   tcoords[2] = new SFVec2f(v3 + 0, v4 + 0);
   tcoords[3] = new SFVec2f(v4 + 1, v3 + 0);
}"

}

ROUTE TIMER.fraction_changed TO SCRIPT.set_fraction
ROUTE SCRIPT.tcoords TO TC.point


mrl