<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D profile='Immersive' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'>
  <head>
    <meta content='IkeaRockingHorse.x3d' name='title'/>
    <meta content='X3D example Model of an Ikea Rocking Horse' name='description'/>
    <meta content='3 March 2004' name='created'/>
    <meta content='20 October 2019' name='modified'/>
    <meta content='Vaughn Pangelinan' name='creator'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/IkeaRockingHorse.x3d' name='identifier'/>
    <meta content='X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../license.html' name='license'/>
  </head>
  <Scene>
    <WorldInfo title='IkeaRockingHorse.x3d'/>
    <Viewpoint DEF='HorseViewRight' description='See Horse Straight On' fieldOfView='1.4' position='0 12 22'/>
    <Transform rotation='1 0 0 -1.57'>
      <Transform>
        <Transform DEF='RockingHorseTransform'>
          <Transform DEF='AutoRotateTransform' center='0 50 0'>
            <Viewpoint DEF='HorseViewOverhead' description='Rock With Horse From Overhead' fieldOfView='1.1' position='0 0 40'/>
            <PlaneSensor DEF='HorsePlaneSensor' description='Moves Horse around Floor' maxPosition='15 15' minPosition='-15 -15'/>
            <ROUTE fromField='translation_changed' fromNode='HorsePlaneSensor' toField='set_translation' toNode='RockingHorseTransform'/>
            <Transform rotation='1 0 0 1.57' translation='0 2 2'>
              <Group>
                <Transform scale='1.5 1 1' translation='0 0 6'>
                  <Shape DEF='Rocker'>
                    <Extrusion convex='false' creaseAngle='.785' crossSection='-2 -1 2 -1 2 1 -2 1 -2 -1' scale='.2 1 .6 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 .6 1 .2 1' solid='false' spine='-15 2.6 0 -14 2.25 0 -13 1.89 0 -12 1.6 0 -11 1.3 0 -10 1.08 0 -9 0.86 0 -8 0.66 0 -7 0.51 0 -6 0.39 0 -5 0.3 0 -4 0.19 0 -3 0.13 0 -2 0.07 0 -1 0.04 0 0 0 0 1 0.04 0 2 0.07 0 3 0.13 0 4 0.19 0 5 0.3 0 6 0.39 0 7 0.51 0 8 0.66 0 9 0.86 0 10 1.08 0 11 1.3 0 12 1.6 0 13 1.89 0 14 2.25 0 15 2.6 0'/>
                    <Appearance>
                      <Material DEF='Wood' diffuseColor='.6 .5 .2'/>
                    </Appearance>
                  </Shape>
                </Transform>
                <Transform scale='1.5 1 1' translation='0 0 -6'>
                  <Shape USE='Rocker'/>
                </Transform>
                <Transform translation='-8 1.75 0'>
                  <Shape DEF='RockerCrossBar'>
                    <Appearance>
                      <Material USE='Wood'/>
                    </Appearance>
                    <Box size='4 .75 12'/>
                  </Shape>
                </Transform>
                <Transform translation='8 1.75 0'>
                  <Shape USE='RockerCrossBar'/>
                </Transform>
                <Transform translation='8 1.75 4'>
                  <Shape DEF='RockerHindLeg'>
                    <Appearance>
                      <Material DEF='NewGreen' diffuseColor='.1 .6 .1'/>
                    </Appearance>
                    <Extrusion convex='false' creaseAngle='.785' crossSection='-2 -.5 2 -.5 2 .5 -2 .5 -2 -.5' scale='1 1 .9 1 .8 1 .75 1 .8 1 .9 1 1 1 1 1' solid='false' spine='0 0 0 0 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0 6 0 0 12 0'/>
                  </Shape>
                </Transform>
                <Transform translation='8 1.75 -4'>
                  <Shape USE='RockerHindLeg'/>
                </Transform>
                <Transform scale='1 1 .5' translation='3 14.25 0'>
                  <Shape DEF='RockerSeat'>
                    <Appearance>
                      <Material DEF='NewBlue' diffuseColor='.1 .1 .6'/>
                    </Appearance>
                    <Cylinder height='1' radius='12'/>
                  </Shape>
                </Transform>
                <Transform translation='-9.99 1.75 0'>
                  <Shape DEF='HorseFront'>
                    <Appearance>
                      <Material DEF='NewRed' diffuseColor='.7 .1 .1'/>
                    </Appearance>
                    <Extrusion convex='false' creaseAngle='.785' crossSection='0 0 3.75 0.28125 5.90625 2.625 7.21875 6.65625 7.78125 15.65625 5.15625 22.6875 4.40625 23.625 4.125 23.8125 3.46875 24 2.71875 23.8125 1.78125 22.875 0.75 20.90625 -3.5625 16.78125 -4.40625 15 -4.3125 13.125 -3.46875 11.90625 -1.96875 11.625 -0.46875 12.28125 0.9375 13.03125 1.875 13.03125 2.4375 12.46875 2.25 5.71875 1.40625 3.09375 0.46875 1.40625 0 0.5625 0 0' solid='false' spine='0 0 .5 0 0 -.5'/>
                  </Shape>
                </Transform>
                <Transform rotation='0 0 1 3.14' scale='1 1 1.35' translation='10 19.8 3.6'>
                  <Transform rotation='0 1 0 1.57'>
                    <Transform rotation='1 0 0 .3'>
                      <Shape DEF='SeatBack'>
                        <Appearance>
                          <Material DEF='NewYellow' diffuseColor='.8 .8 .1'/>
                        </Appearance>
                        <Extrusion convex='false' creaseAngle='.785' crossSection='0 6 0 1.976470588 0.635294118 0.988235294 1.270588235 0.423529412 2.117647059 0.070588235 2.752941176 0 3.6 0.211764706 4.376470588 0.705882353 4.870588235 1.482352941 5.082352941 2.258823529 5.082352941 6 0 6' solid='false' spine='0 0 .5 0 0 -.5'/>
                      </Shape>
                    </Transform>
                  </Transform>
                </Transform>
                <Transform rotation='1 0 0 1.57' translation='-6.5 24 0'>
                  <Shape DEF='RockerHandle'>
                    <Appearance>
                      <Material USE='Wood'/>
                    </Appearance>
                    <Cylinder height='10' radius='.75'/>
                  </Shape>
                </Transform>
                <Transform rotation='1 0 0 1.57' translation='-8.5 21 0'>
                  <Shape DEF='RockerEye'>
                    <Appearance>
                      <Material diffuseColor='0.1 0.1 0.1'/>
                    </Appearance>
                    <Cylinder height='1.01' radius='.75'/>
                  </Shape>
                </Transform>
              </Group>
            </Transform>
          </Transform>
          <TimeSensor DEF='CLOCK' cycleInterval='2' loop='true'/>
          <OrientationInterpolator DEF='HorsePathInterpolator' key='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 .04 0.0 1.0 0.0 .08 0.0 1.0 0.0 .04 0.0 1.0 0.0 0.0 0.0 1.0 0.0 -.04 0.0 1.0 0.0 -.08 0.0 1.0 0.0 -.04 0.0 1.0 0.0 0.0'/>
          <ROUTE fromField='fraction_changed' fromNode='CLOCK' toField='set_fraction' toNode='HorsePathInterpolator'/>
          <ROUTE fromField='value_changed' fromNode='HorsePathInterpolator' toField='set_rotation' toNode='AutoRotateTransform'/>
        </Transform>
      </Transform>
    </Transform>
  </Scene>
</X3D>