<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D profile='Interchange' version='3.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' http://www.web3d.org/specifications/x3d-3.0.xsd '>
<head>
<meta name='titlecontent='Figure18.27RotatingFanAnimatedTextureTransform.x3d'/>
<meta name='creatorcontent='Figure 18.27, The VRML 2.0 Sourcebook, Copyright [1997] By Andrea L. Ames, David R. Nadeau, and John L. Moreland'/>
<meta name='referencecontent=' http://www.wiley.com/legacy/compbooks/vrml2sbk/ch18/18fig27.htm '/>
<meta name='translatorcontent='Don Brutzman'/>
<meta name='createdcontent='4 September 2000'/>
<meta name='modifiedcontent='11 January 2014'/>
<meta name='descriptioncontent='A rotating fan, made realistic by animating a TextureTransform.'/>
<meta name='identifiercontent=' http://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter18-TextureMapping/Figure18.27RotatingFanAnimatedTextureTransform.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../../license.html'/>
</head>
<!--

Index for DEF nodes : Clock, FanPath, FanRotation, Square

Index for Viewpoint image : Viewpoint_1
-->
<Scene>
<Viewpoint description='That feels goodposition='0 0 4'/>
<Group>
<Shape>
<Appearance>
<ImageTexture repeatS='falserepeatT='false'
  url=' "fan.png" "http://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter18-TextureMapping/fan.png" '/>

<!-- Negative coordinates applied to TextureTransform center since opposite effect occurs when texture is mapped to geometry. These values center the fan blade. Thanks to Emanuele Ruffaldi for providing the correct values. -->
<!-- FanRotation ROUTE:  [from FanPath.value_changed to set_rotation ] -->
<TextureTransform DEF='FanRotationcenter='-0.5 -0.5'/>
</Appearance>
<IndexedFaceSet DEF='Squaresolid='falsecoordIndex='0 1 2 3texCoordIndex='0 1 2 3'>
<Coordinate point='-1 -1 -0.1 1 -1 -0.1 1 1 -0.1 -1 1 -0.1'/>
<TextureCoordinate point='0 0 1 0 1 1 0 1'/>
</IndexedFaceSet>
</Shape>
<Transform translation='0 0 0.1'>
<Shape>
<Appearance>
<ImageTexture
  url=' "grill.png" "http://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter18-TextureMapping/grill.png" '/>

<TextureTransform center='0.5 0.5rotation='0.785scale='8 8'/>
</Appearance>
<IndexedFaceSet USE='Square'/>
</Shape>
</Transform>
<!-- Clock ROUTE:  [from fraction_changed to FanPath.set_fraction ] -->
<TimeSensor DEF='ClockcycleInterval='4loop='true'/>
<!-- FanPath ROUTEs:  [from Clock.fraction_changed to set_fraction ] [from value_changed to FanRotation.set_rotation ] -->
<ScalarInterpolator DEF='FanPathkey='0 0.5 1keyValue='0 3.14 6.28'/>
</Group>
<ROUTE fromNode='ClockfromField='fraction_changedtoNode='FanPathtoField='set_fraction'/>
<ROUTE fromNode='FanPathfromField='value_changedtoNode='FanRotationtoField='set_rotation'/>
</Scene>
</X3D>
<!--

Index for DEF nodes : Clock, FanPath, FanRotation, Square

Index for Viewpoint image : Viewpoint_1
-->

<!-- Color key: <X3dNode DEF='idName' field='value'/> matches <XmlElement DEF='idName' attribute='value'/> -->

<!-- Additional help information about X3D scenes: X3D Resources, X3D Scene Authoring Hints and X3D Tooltips -->