#VRML V2.0 utf8 # Prototype for a walker - copyright Ken Perlin 3/97 PROTO Walker [ exposedField SFTime cycleInterval 1 exposedField SFTime pathInterval 10 exposedField SFVec3f pathPosition 3 .03 0 exposedField SFVec3f size 1 1 1 exposedField SFColor color 1 .7 .7 exposedField MFFloat shadowKey [ 0 .5 1 ] exposedField MFVec3f keyValue [ 0 1 0 0 0 .5 0 1 1 1 1 0 1 0 .5 1 1 1 0 1 0 0 0 .5 0 1 1 1 1 0 1 0 .5 1 1 1 0 1 0 0 0 .5 0 1 1 1 1 0 1 0 .5 1 1 1 0 1 0 0 0 .5 0 1 1 1 1 0 1 0 .5 1 1 1 0 1 0 0 0 .5 0 1 1 1 1 0 1 0 .5 1 1 1 ] exposedField MFVec3f shadow [ 0 .01 0.1 0 .01 1.1 1 .01 0.9 1 .01 -.1 0 .01 -.1 0 .01 0.9 1 .01 1.1 1 .01 0.1 0 .01 0.1 0 .01 1.1 1 .01 0.8 1 .01 -.1 ] exposedField MFString url [ ] ] { Group { children [ DEF cycleClock TimeSensor { cycleInterval IS cycleInterval loop TRUE } DEF pathClock TimeSensor { cycleInterval IS pathInterval loop TRUE } DEF Path Transform { rotation 0 1 0 0 children [ Transform { translation IS pathPosition children [ Inline { url IS url } Transform { scale IS size children [ Shape { appearance Appearance { material Material { diffuseColor .1 .13 .07 } } geometry IndexedFaceSet { coordIndex [ 0 1 2 3 ] coord DEF Shadow Coordinate { point [ 0 0 0 0 0 1 1 0 1 1 0 0 ] } } } Shape { appearance Appearance { material Material { diffuseColor IS color } } geometry IndexedFaceSet { coordIndex [ 0 1 2 -1 5 4 3 -1 1 0 3 4 -1 2 1 4 5 -1 0 2 5 3 ] coord DEF Coords Coordinate { point [ 0 1 0 0 0 .5 0 1 1 1 1 0 1 0 .5 1 1 1 ] } } } ] } ] } ] } DEF Morph CoordinateInterpolator { key [ 0 .25 .5 .75 1 ] keyValue IS keyValue } DEF MorphShadow CoordinateInterpolator { key IS shadowKey keyValue IS shadow } DEF Move OrientationInterpolator { key [ 0 .5 1 ] keyValue [ 0 1 0 0 0 1 0 3.14 0 1 0 6.28 ] } ] } ROUTE cycleClock.fraction_changed TO Morph.set_fraction ROUTE cycleClock.fraction_changed TO MorphShadow.set_fraction ROUTE Morph.value_changed TO Coords.set_point ROUTE MorphShadow.value_changed TO Shadow.set_point ROUTE pathClock.fraction_changed TO Move.set_fraction ROUTE Move.value_changed TO Path.set_rotation }