media @ VU
vrml-math-glade.vr
vrml-math-glade.vr
(wrl
)
[ flux /
bitmanagement /
cortona /
octaga
]
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
(C) A. Eliëns
2/9/2007
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.