#VRML V2.0 utf8 #Cosmo Worlds V2.0 DEF MY_TIMER TimeSensor { loop TRUE cycleInterval 3.333 } Transform { children Shape { appearance Appearance { material Material { } } geometry DEF _0 IndexedFaceSet { coord DEF MY_COORDS Coordinate { point [ -1 0 1, -1 -1 1, 1 0 1, 1 -1 1, 1 0 -1, 1 -1 -1, -1 0 -1, -1 -1 -1, -1 1 1, -1 1 -1, 1 1 1, 1 1 -1, -2 0 -1, -2 -1 -1, -2 -1 1, -2 0 1, -3 0.42565 -1, -3 -0.57435 -1, -3 -0.57435 1, -3 0.42565 1, -4 0.42565 -1, -4 -0.57435 -1, -4 -0.57435 1, -4 0.42565 1, 2 0 1, 2 -1 1, 2 -1 -1, 2 0 -1, 3 0.47402 1, 3 -0.52598 1, 3 -0.52598 -1, 3 0.47402 -1, 4 0.47402 1, 4 -0.52598 1, 4 -0.52598 -1, 4 0.47402 -1, 1 1 0, -1 1 0, 1 1 -0.5, -1 1 -0.5, 1 1 0.5, -1 1 0.5 ] } coordIndex [ 0, 1, 3, 2, -1, 4, 5, 7, 6, -1, 1, 7, 5, 3, -1, 8, 41, 37, 39, 9, 6, 0, -1, 10, 8, 0, 2, -1, 11, 38, 36, 40, 10, 2, 4, -1, 9, 11, 4, 6, -1, 13, 12, 6, 7, -1, 14, 13, 7, 1, -1, 15, 14, 1, 0, -1, 12, 15, 0, 6, -1, 17, 16, 12, 13, -1, 18, 17, 13, 14, -1, 19, 18, 14, 15, -1, 16, 19, 15, 12, -1, 20, 21, 22, 23, -1, 21, 20, 16, 17, -1, 22, 21, 17, 18, -1, 23, 22, 18, 19, -1, 20, 23, 19, 16, -1, 25, 24, 2, 3, -1, 26, 25, 3, 5, -1, 27, 26, 5, 4, -1, 24, 27, 4, 2, -1, 29, 28, 24, 25, -1, 30, 29, 25, 26, -1, 31, 30, 26, 27, -1, 28, 31, 27, 24, -1, 32, 33, 34, 35, -1, 33, 32, 28, 29, -1, 34, 33, 29, 30, -1, 35, 34, 30, 31, -1, 32, 35, 31, 28, -1, 9, 39, 38, 11, -1, 39, 37, 36, 38, -1, 37, 41, 40, 36, -1, 41, 8, 10, 40, -1 ] creaseAngle 0.5 } } translation 0 1 0 } DEF DEFORMER ChannelDeformer { basePoint [ -1 0 1, -1 -1 1, 1 0 1, 1 -1 1, 1 0 -1, 1 -1 -1, -1 0 -1, -1 -1 -1, -1 1 1, -1 1 -1, 1 1 1, 1 1 -1, -2 0 -1, -2 -1 -1, -2 -1 1, -2 0 1, -3 0.42565 -1, -3 -0.57435 -1, -3 -0.57435 1, -3 0.42565 1, -4 0.42565 -1, -4 -0.57435 -1, -4 -0.57435 1, -4 0.42565 1, 2 0 1, 2 -1 1, 2 -1 -1, 2 0 -1, 3 0.47402 1, 3 -0.52598 1, 3 -0.52598 -1, 3 0.47402 -1, 4 0.47402 1, 4 -0.52598 1, 4 -0.52598 -1, 4 0.47402 -1, 1 1 0, -1 1 0, 1 1 -0.5, -1 1 -0.5, 1 1 0.5, -1 1 0.5 ] channels [ DEF TRANS_CHANNEL TranslationDefChannel { weight 1 modifiedCoordIndex [ 8 10 36 37 38 39 40 41 9 11 ] translation [ 0 1 0 ] } DEF ROT_CHANNEL_1 RotationDefChannel { modifiedCoordIndex [1 7 12 13 14 15 16 17 18 19 20 21 22 23 ] rotation [ 0 0 1 1 ] center [ -1 0 0 ] } DEF ROT_CHANNEL_2 RotationDefChannel { modifiedCoordIndex [ 3 5 24 25 26 27 28 29 30 31 32 33 34 35] rotation [ 0 0 -1 1 ] center [ 1 0 0 ] } ] } DEF TRANS_INTERP CoordinateInterpolator { key [ 0 0.25 0.75 1 ] keyValue [ 0 0 .2 .2 .3 .3 .2 .2 0 0 .2 .2 .5 .5 .6 .6 .8 .8 .2 .2 .4 .4 .5 .5 .5 .5 .8 .8 .1 .1 0 0 .2 .2 .3 .3 .2 .2 0 0 ] } DEF ROT_INTERP ScalarInterpolator { key [ 0 0.25 0.5 0.75 1 ] keyValue [ 0 1.5 1 1.5 0 ] } Viewpoint { position -3.69463 4.08383 6.97599 orientation -0.622703 -0.767183 -0.153855 0.623136 fieldOfView 0.785398 } ROUTE DEFORMER.outPoint to MY_COORDS.point ROUTE MY_TIMER.fraction TO TRANS_INTERP.fraction ROUTE TRANS_INTERP.value TO TRANS_CHANNEL.weights ROUTE MY_TIMER.fraction TO ROT_INTERP.fraction ROUTE ROT_INTERP.value TO ROT_CHANNEL_1.weight ROUTE ROT_INTERP.value TO ROT_CHANNEL_2.weight