#VRML V2.0 utf8 Viewpoint { description "start" position 0 1.7 23 orientation 0 1 0 0 } Viewpoint { description "top" position 0 100 0 orientation 1 0 0 -1.57 } Background{ skyColor .5 .8 .9} Transform{ children[ Shape{ appearance Appearance{ texture ImageTexture { url "forest.jpg" } } geometry IndexedFaceSet{ solid FALSE coord Coordinate{ point[ -30 0 -30, 30 0 -30, 30 0 30, -30 0 30 -30 30 -30, 30 30 -30, 30 30 30, -30 30 30]} coordIndex[0 1 5 4 -1 1 2 6 5 -1 2 3 7 6 -1 3 0 4 7 -1] texCoord TextureCoordinate{ point [0 0, 1 0, 1 1, 0 1]} texCoordIndex [0 1 2 3 -1 0 1 2 3 -1 0 1 2 3 -1 0 1 2 3 -1] }} Shape{ appearance Appearance{ material Material { emissiveColor .2 .5 .1 } } geometry IndexedFaceSet{ solid FALSE coord Coordinate{ point[-100 0 -100, 100 0 -100, 100 0 100, -100 0 100]} coordIndex[0 1 2 3 -1] }} DEF p1 Group{ children[ DEF pul Transform{ translation -18.3 0 .1 children[ Shape{ appearance Appearance{ texture ImageTexture { url "pulmonaria.gif" } } geometry IndexedFaceSet{ solid FALSE coord Coordinate{ point[0 0 -.5, 0 0 .5, 0 1 .5, 0 1 -.5, -.5 0 0, .5 0 0, .5 1 0, -.5 1 0]} coordIndex[0 1 2 3 -1 4 5 6 7 -1] texCoord TextureCoordinate{ point [0 0, 1 0, 1 1, 0 1]} texCoordIndex [0 1 2 3 -1 0 1 2 3 -1] }} ]} Transform{ translation 1 0 1 children[ USE pul ]} Transform{ translation .5 0 -1 children[ USE pul ]} Transform{ translation -.5 0 .5 children[ USE pul ]} ]} DEF p2 Group{ children[ Transform{ translation 2.1 0 2.3 children[ USE p1 ]} Transform{ translation 1.1 0 -2 children[ USE p1 ]} Transform{ translation -1 0 1.1 children[ USE p1 ]} ]} DEF p3 Group{ children[ Transform{ translation 4.3 0 4.1 children[ USE p2 ]} Transform{ translation 2.1 0 -4.7 children[ USE p2 ]} Transform{ translation -2.2 0 2.1 children[ USE p2 ]} ]} DEF p4 Group{ children[ Transform{ translation 8.7 0 8.1 children[ USE p3 ]} Transform{ translation 4.2 0 -8.7 children[ USE p3 ]} Transform{ translation -4.1 0 4.3 children[ USE p3 ]} ]} Group{ children[ Transform{ translation 16.1 0 16.3 children[ USE p4 ]} Transform{ translation 8.3 0 -16.1 children[ USE p4 ]} Transform{ translation -8.5 0 8.7 children[ USE p4 ]} ]} DEF d1 Group{ children[ DEF daisy Shape{ appearance Appearance{ texture ImageTexture { url "daisy.gif" } } geometry IndexedFaceSet{ solid FALSE coord Coordinate{ point[-.3 0 -.3, .3 0 .3, .3 1.2 .3, -.3 1.2 -.3, -.3 0 .3, .3 0 -.3, .3 1.2 -.3, -.3 1.2 .3]} coordIndex[0 1 2 3 -1 4 5 6 7 -1] texCoord TextureCoordinate{ point [0 0, 1 0, 1 1, 0 1]} texCoordIndex [0 1 2 3 -1 0 1 2 3 -1] }} Transform{ translation 1 0 1 children[ USE daisy ]} Transform{ translation .5 0 -1 children[ USE daisy ]} Transform{ translation -.5 0 .5 children[ USE daisy ]} ]} DEF d2 Group{ children[ Transform{ translation 2.1 0 2.03 children[ USE d1 ]} Transform{ translation 1.3 0 -2.13 children[ USE d1 ]} Transform{ translation -1.05 0 1.1 children[ USE d1 ]} ]} DEF d3 Group{ children[ Transform{ translation 4.3 0 4.5 children[ USE d2 ]} Transform{ translation 2.1 0 -4.3 children[ USE d2 ]} Transform{ translation -2.3 0 2.1 children[ USE d2 ]} ]} DEF d4 Group{ children[ Transform{ translation 8.7 0 8.1 children[ USE d3 ]} Transform{ translation 4.2 0 -8.5 children[ USE d3 ]} Transform{ translation -4.3 0 4.7 children[ USE d3 ]} ]} Group{ children[ Transform{ translation 16.9 0 16.1 children[ USE d4 ]} Transform{ translation 8.3 0 -16.9 children[ USE d4 ]} Transform{ translation -8.1 0 8.7 children[ USE d4 ]} ]} DEF rotor Transform{ children[ DEF bf Transform{ translation 0 4 -15 children[ DEF wing1 Transform{ children[ DEF wing Shape{ appearance Appearance{ texture ImageTexture { url "Nymphalis_urticae.gif" } } geometry IndexedFaceSet{ solid FALSE coord Coordinate{ point[-1 0 0, 1 0 0, 1 2 0, -1 2 0]} coordIndex[0 1 2 3 -1] texCoord TextureCoordinate{ point [0 0, 1 0, 1 1, 0 1]} texCoordIndex [3 0 1 2 -1] }} ]} DEF wing2 Transform{ children[ USE wing ]} ]} # end bf Transform{ translation 0 -2 0 rotation 0 1 0 1 children[ USE bf ]} ]} # end rotor ]} DEF TS1 TimeSensor{ cycleInterval 1 loop TRUE } DEF TS2 TimeSensor{ cycleInterval 20 loop TRUE } DEF OI1 OrientationInterpolator{ key [ 0 .5 1 ] keyValue[ 1 0 0 .1, 1 0 0 2, 1 0 0 .1] } DEF OI2 OrientationInterpolator{ key [ 0 .5 1 ] keyValue[ 1 0 0 -.1, 1 0 0 -2, 1 0 0 -.1] } DEF OI OrientationInterpolator{ key [ 0 .5 1 ] keyValue[ 0 1 .01 0, 0 1 .01 3.1415, 0 1 .1 6.283] } DEF PI PositionInterpolator{ key [ 0 .2 .6 .8 1 ] keyValue[ 0 4 0, 0 0 0, 0 0 0, 0 8 0, 0 4 0] } ROUTE TS1.fraction_changed TO OI1.set_fraction ROUTE OI1.value_changed TO wing1.set_rotation ROUTE TS1.fraction_changed TO OI2.set_fraction ROUTE OI2.value_changed TO wing2.set_rotation ROUTE TS2.fraction_changed TO OI.set_fraction ROUTE OI.value_changed TO rotor.set_rotation ROUTE TS2.fraction_changed TO PI.set_fraction ROUTE PI.value_changed TO rotor.set_translation