Engines

Interpolator Demo

#VRML V2.0 utf8

NavigationInfo { type "EXAMINE" }

######################################################################
DEF MOVEME Transform {
   translation -2 2 0
   children [
      DEF TOUCH1 TouchSensor {}
      DEF BALL Shape { 
	 appearance DEF APP Appearance { material Material {} }
	 geometry Sphere {}
      }		
     ]
}

DEF TIMER1 TimeSensor { 
   cycleInterval .5
   startTime -1
   loop TRUE
}

DEF MOVER PositionInterpolator {
   key [ 0 .25 .75 1 ]
   keyValue [ -2 2 0,  -2 2.25 0,  -2 1.75 0,  -2 2 0 ]
}

ROUTE TOUCH1.touchTime TO TIMER1.startTime
ROUTE TIMER1.fraction_changed TO MOVER.set_fraction
ROUTE MOVER.value_changed TO MOVEME.translation

######################################################################
DEF SPINME Transform {
   translation 2 2 0
   children [
      DEF TOUCH2 TouchSensor {}
      Shape { 
	 appearance USE APP
	 geometry Box {}
      }		
     ]
}

DEF TIMER2 TimeSensor { 
   cycleInterval 2
   startTime -1
   loop TRUE
}

DEF SPINNER OrientationInterpolator {
   key [ 0 .33 .66 1 ]
   keyValue [ 0 1 0  0,  0 1 0  2.09,  0 1 0  4.19,  0 1 0  0 ]
}

ROUTE TOUCH2.touchTime TO TIMER2.startTime
ROUTE TIMER2.fraction_changed TO SPINNER.set_fraction
ROUTE SPINNER.value_changed TO SPINME.rotation

######################################################################
Transform {
   translation -2 -2 0
   children [
      DEF TOUCH3 TouchSensor {}
      Shape { 
	 appearance Appearance { material DEF COLORME Material {} }
	 geometry Box {}
      }		
     ]
}

DEF TIMER3 TimeSensor { 
   cycleInterval .75
   startTime -1
   loop TRUE
}

DEF COLORER ColorInterpolator {
   key [ 0 .5 1 ]
   keyValue [ 1 1 1,  .2 .2 0, 1 1 1 ]
}

ROUTE TOUCH3.touchTime TO TIMER3.startTime
ROUTE TIMER3.fraction_changed TO COLORER.set_fraction
ROUTE COLORER.value_changed TO COLORME.diffuseColor

######################################################################
Transform {
   translation 2 -2 0
   children [
      DEF TOUCH4 TouchSensor {}
      Shape { 
	 appearance Appearance { material DEF CLEARME Material {} }
	 geometry Sphere {}
      }		
     ]
}

DEF TIMER4 TimeSensor { 
   cycleInterval 3
   startTime -1
   loop TRUE
}

DEF CLEARER ScalarInterpolator {
   key [ 0 .5 1 ]
   keyValue [ 0 1 0 ]
}

ROUTE TOUCH4.touchTime TO TIMER4.startTime
ROUTE TIMER4.fraction_changed TO CLEARER.set_fraction
ROUTE CLEARER.value_changed TO CLEARME.transparency


######################################################################
Transform {
   children [
      DEF TOUCH5 TouchSensor {}
      Shape { 
	 appearance Appearance { material Material {} }
	 geometry IndexedFaceSet {
	    solid FALSE
	    coord DEF STRETCHME Coordinate {
	       point [ 0 1 0, 1 0 0, 0 -1 0, -1 0 0,
		       0 1 .1, 1 0 .1, 0 -1 .1, -1 0 .1 ]		       
	    }
	    coordIndex [ 0 1 2 3 -1, 4 5 6 7 -1 ]
	 }
      }		
     ]
}

DEF TIMER5 TimeSensor { 
   cycleInterval 5
   startTime -1
   loop TRUE
}

DEF STRETCHER CoordinateInterpolator {
   key [ 0 .25 .75 1 ]
   keyValue [ 0 1 0, 1 0 0, 0 -1 0, -1 0 0,  0 1 .1, 1 0 .1, 0 -1 .1, -1 0 .1,
	      0 .2 0, 5 0 0, 0 -.2 0, -5 0 0,  0 5 .1, .2 0 .1, 0 -5 .1, -.2 0 .1,
	      0 5 .1, .2 0 .1, 0 -5 .1, -.2 0 .1,  0 .2 0, 5 0 0, 0 -.2 0, -5 0 0,  
	      0 1 0, 1 0 0, 0 -1 0, -1 0 0,  0 1 .1, 1 0 .1, 0 -1 .1, -1 0 .1 ]
}

ROUTE TOUCH5.touchTime TO TIMER5.startTime
ROUTE TIMER5.fraction_changed TO STRETCHER.set_fraction
ROUTE STRETCHER.value_changed TO STRETCHME.point


mrl