<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "http://www.web3d.org/specifications/x3d-3.3.dtd">
<X3D profile='Immersive' version='3.3 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' http://www.web3d.org/specifications/x3d-3.3.xsd '>
<head>
<meta name='titlecontent='LOA1_SwimmingFlutterKickAnimation.x3d'/>
<meta name='descriptioncontent='Humanoid animation prototype reusable by any Humanoid.'/>
<meta name='creatorcontent='Etsuko Lippi'/>
<meta name='createdcontent='13 December 2001'/>
<meta name='modifiedcontent='6 January 2018'/>
<meta name=' warning content=' not yet tested, need to compare with NancyDivingExample interpolators '/>
<meta name='referencecontent=' http://www.h-anim.org '/>
<meta name='referencecontent=' http://h-anim.org/Models '/>
<meta name='referencecontent=' http://h-anim.org/Nodes '/>
<meta name='subjectcontent='Swimming flutter kick Animation H-Anim 2001'/>
<meta name='identifiercontent=' http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/LOA1_SwimmingFlutterKickAnimation.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!-- -->
<Scene>
<ProtoDeclare name='LOA1_DivingAnimation'>
<ProtoInterface>
<field name='cycleIntervaltype='SFTimevalue='7accessType='inputOutput'/>
<field name='enabledtype='SFBoolvalue='trueaccessType='inputOutput'/>
<field name='looptype='SFBoolvalue='trueaccessType='inputOutput'/>
<field name='startTimetype='SFTimevalue='0accessType='inputOutput'/>
<field name='stopTimetype='SFTimevalue='-1accessType='inputOutput'/>
<field name='fraction_changedtype='SFFloataccessType='outputOnly'/>
<field name='isActivetype='SFBoolaccessType='outputOnly'/>
<field name='HumanoidRoot_translation_changedtype='SFVec3faccessType='outputOnly'/>
<field name='HumanoidRoot_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='lower_body_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='l_hip_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='l_knee_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='l_ankle_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='l_midtarsal_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='r_hip_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='r_knee_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='r_ankle_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='r_midtarsal_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='vl5_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='skullbase_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='l_shoulder_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='l_elbow_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='l_wrist_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='r_shoulder_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='r_elbow_rotation_changedtype='SFRotationaccessType='outputOnly'/>
<field name='r_wrist_rotation_changedtype='SFRotationaccessType='outputOnly'/>
</ProtoInterface>
<ProtoBody>
<Group>
<!-- ROUTE information for TIMER node:  [from fraction_changed to HUMANOIDROOT_POSITION_ANIMATOR.set_fraction ] [from fraction_changed to HUMANOIDROOT_ANIMATOR.set_fraction ] [from fraction_changed to SKULLBASE_ANIMATOR.set_fraction ] [from fraction_changed to VL5_ANIMATOR.set_fraction ] [from fraction_changed to L_HIP_ANIMATOR.set_fraction ] [from fraction_changed to L_KNEE_ANIMATOR.set_fraction ] [from fraction_changed to L_ANKLE_ANIMATOR.set_fraction ] [from fraction_changed to R_HIP_ANIMATOR.set_fraction ] [from fraction_changed to R_KNEE_ANIMATOR.set_fraction ] [from fraction_changed to R_ANKLE_ANIMATOR.set_fraction ] [from fraction_changed to L_SHOULDER_ANIMATOR.set_fraction ] [from fraction_changed to L_ELBOW_ANIMATOR.set_fraction ] [from fraction_changed to L_WRIST_ANIMATOR.set_fraction ] [from fraction_changed to R_SHOULDER_ANIMATOR.set_fraction ] [from fraction_changed to R_ELBOW_ANIMATOR.set_fraction ] [from fraction_changed to R_WRIST_ANIMATOR.set_fraction ] -->
<TimeSensor DEF='TIMERloop='true'>
<IS>
<connect nodeField='cycleIntervalprotoField='cycleInterval'/>
<connect nodeField='enabledprotoField='enabled'/>
<connect nodeField='loopprotoField='loop'/>
<connect nodeField='startTimeprotoField='startTime'/>
<connect nodeField='stopTimeprotoField='stopTime'/>
<connect nodeField='fraction_changedprotoField='fraction_changed'/>
<connect nodeField='isActiveprotoField='isActive'/>
</IS>
</TimeSensor>
<!-- ROUTE information for HUMANOIDROOT_POSITION_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<PositionInterpolator DEF='HUMANOIDROOT_POSITION_ANIMATORkey='0.0 0.04167 0.125 0.1667 0.2083 0.25 0.2917 0.375 0.4583 0.5 0.5417 0.5833 0.625 0.7083 0.75 0.7917 0.875 0.9167 1.0keyValue='0.0 -0.00928 0.0 0.0 -0.003858 0.0 0.0 -0.008847 0.0 0.0 -0.01486 0.0 0.0 -0.02641 0.0 0.0 -0.03934 0.0 0.0 -0.0502 0.0 0.0 -0.07469 0.0 0.0 -0.02732 0.0 0.0 -0.01608 0.0 0.0 -0.01129 0.0 0.0 -0.005819 0.0 0.0 -0.002004 0.0 0.0 -0.002579 0.0 0.0 -0.0143 0.0 0.0 -0.03799 0.0 0.0 -0.05648 0.0 0.0 -0.045 0.0 0.0 -0.00928 0.0'>
<IS>
<connect nodeField='value_changedprotoField='HumanoidRoot_translation_changed'/>
</IS>
</PositionInterpolator>
<!-- ROUTE information for HUMANOIDROOT_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='HUMANOIDROOT_ANIMATORkey='0.0 1.0keyValue='0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0'>
<IS>
<connect nodeField='value_changedprotoField='HumanoidRoot_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- no SACROILIAC_ANIMATOR -->
<!-- ROUTE information for L_HIP_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='L_HIP_ANIMATORkey='0.0 0.25 0.375 0.6667 0.7917 0.9167 1.0keyValue='-0.873 0.06094 0.484 0.2865 0.9963 -0.01057 0.08481 0.2488 0.9965 0.01591 -0.08222 0.3836 -1.0 0.0 0.0 0.5518 -0.9964 0.02231 0.0817 0.5351 -0.9809 0.04912 0.1881 0.5204 -0.873 0.06094 0.484 0.2865'>
<IS>
<connect nodeField='value_changedprotoField='l_hip_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for L_KNEE_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='L_KNEE_ANIMATORkey='0.0 0.2083 0.375 0.5 0.6667 0.7917 0.9167 1.0keyValue='1.0 0.0 0.0 0.3226 1.0 0.0 0.0 0.1556 1.0 0.0 0.0 0.08678 1.0 0.0 0.0 0.8751 1.0 0.0 0.0 1.131 1.0 0.0 0.0 0.09961 1.0 0.0 0.0 0.3942 1.0 0.0 0.0 0.3226'>
<IS>
<connect nodeField='value_changedprotoField='l_knee_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for L_ANKLE_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='L_ANKLE_ANIMATORkey='0.0 0.125 0.2083 0.375 0.4583 0.5 0.6667 0.75 0.7917 0.9167 1.0keyValue='1.0 0.0 0.0 0.6001 1.0 0.0 0.0 0.6509 1.0 0.0 0.0 0.6001 1.0 0.0 0.0 0.6001 1.0 0.0 0.0 0.6509 1.0 0.0 0.0 0.6001 1.0 0.0 0.0 0.6001 1.0 0.0 0.0 0.6509 1.0 0.0 0.0 0.6001 1.0 0.0 0.0 0.6509 1.0 0.0 0.0 0.6001'>
<IS>
<connect nodeField='value_changedprotoField='l_ankle_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- no L_MIDTARSAL_ANIMATOR -->
<!-- ROUTE information for R_HIP_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='R_HIP_ANIMATORkey='0.0 0.125 0.2083 0.2917 0.5 0.7917 0.9167 1.0keyValue='-0.5831 0.03511 0.8116 0.1481 -0.995 0.02296 0.09674 0.4683 -1.0 0.00192 0.007964 0.4732 -0.998 -0.0158 -0.06102 0.5079 -0.9131 -0.06243 -0.403 0.3361 1.0 0.0 0.0 0.2571 0.9891 -0.02805 0.1444 0.3879 -0.5831 0.03511 0.8116 0.1481'>
<IS>
<connect nodeField='value_changedprotoField='r_hip_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for R_KNEE_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='R_KNEE_ANIMATORkey='0.0 0.125 0.2083 0.375 0.5 0.6667 0.9167 1.0keyValue='1.0 0.0 0.0 0.8573 1.0 0.0 0.0 0.5351 1.0 0.0 0.0 0.1756 1.0 0.0 0.0 0.1194 1.0 0.0 0.0 0.3153 1.0 0.0 0.0 0.09354 1.0 0.0 0.0 0.08558 1.0 0.0 0.0 0.8573'>
<IS>
<connect nodeField='value_changedprotoField='r_knee_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for R_ANKLE_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='R_ANKLE_ANIMATORkey='0.0 0.125 0.2083 0.375 0.4583 0.5 0.6667 0.75 0.7917 0.9167 1.0keyValue='1.0 0.0 0.0 0.8001 1.0 0.0 0.0 0.8509 1.0 0.0 0.0 0.8001 1.0 0.0 0.0 0.8001 1.0 0.0 0.0 0.8509 1.0 0.0 0.0 0.8001 1.0 0.0 0.0 0.8001 1.0 0.0 0.0 0.8001 1.0 0.0 0.0 0.8001 1.0 0.0 0.0 0.8509 1.0 0.0 0.0 0.86001'>
<IS>
<connect nodeField='value_changedprotoField='r_ankle_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- no L_MIDTARSAL_ANIMATOR -->
<!-- ROUTE information for VL5_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='VL5_ANIMATORkey='0.0 0.2083 0.375 0.75 0.8333 1.0keyValue='0.0 1.0 0.0 0.0826 -0.01972 -0.5974 0.8017 0.08231 0.009296 -0.9648 0.2627 0.1734 -0.01238 0.9549 -0.2968 0.08732 -0.008125 0.9691 -0.2463 0.158 0.0 1.0 0.0 0.0826'>
<IS>
<connect nodeField='value_changedprotoField='vl5_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for SKULLBASE_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='SKULLBASE_ANIMATORkey='0.0 0.28 0.3 0.32 0.4 0.45 0.60 0.65 0.70 0.75 0.85 0.90 0.95 1.0keyValue='-1.0 0.0 0.0 1.0 -1.0 0.0 0.0 1.0 -1.0 0.0 0.0 0.999 -1.0 0.0 0.0 0.99 -1.0 0.0 0.0 0.99 -1.0 0.0 0.0 0.9 -1.0 0.0 0.0 0.9 -1.0 0.0 0.0 0.9 -1.0 0.0 0.0 0.9 -1.0 0.0 0.0 0.9 -1.0 0.0 0.0 0.9 -1.0 0.0 0.0 0.9 -1.0 0.0 0.0 0.9 -1.0 0.0 0.0 1.0'>
<IS>
<connect nodeField='value_changedprotoField='skullbase_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for L_SHOULDER_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='L_SHOULDER_ANIMATORkey='0.0 0.25 0.375 0.6667 0.7917 0.9167 1.0keyValue='0.0 0.0 1.0 0.1 0.0 0.0 1.0 0.2 0.0 0.0 1.0 0.2 0.86 0.25 0.42 0.5 0.86 0.25 0.42 0.8 0.86 0.25 0.42 0.4 0.86 0.25 0.42 0.2'>
<IS>
<connect nodeField='value_changedprotoField='l_shoulder_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for L_ELBOW_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='L_ELBOW_ANIMATORkey='0.0 0.28 0.32 0.64 0.76 1.0keyValue='0.0 0.0 1.0 0.0 -1.0 0.0 0.0 0.1229 -1.0 0.0 0.0 0.1229 -1.0 0.0 0.0 0.5976 -1.0 0.0 0.0 0.3917 0.0 0.0 1.0 0.0'>
<IS>
<connect nodeField='value_changedprotoField='l_elbow_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for L_WRIST_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='L_WRIST_ANIMATORkey='0.0 0.32 0.64 0.88 1.0keyValue='0.0 0.0 1.0 0.0 0.067 0.98 -0.128 4.15 0.067 0.98 -0.128 4.15 0.067 0.98 -0.128 4.15 0.0 0.0 1.0 0.0'>
<IS>
<connect nodeField='value_changedprotoField='l_wrist_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for R_SHOULDER_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='R_SHOULDER_ANIMATORkey='0.0 0.45 0.64 0.76 0.88 1.0keyValue='0.0 0.0 1.0 0.0 0.9992 0.02042 0.03558 7.2 0.9989 -0.04623 0.005159 4.079 -0.8687 -0.2525 -0.4261 1.501 -0.941 -0.2893 -0.1754 0.4788 0.0 0.0 1.0 0.0'>
<IS>
<connect nodeField='value_changedprotoField='r_shoulder_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for R_ELBOW_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='R_ELBOW_ANIMATORkey='0.0 0.28 0.32 0.64 0.76 1.0keyValue='0.0 0.0 1.0 0.0 -1.0 0.0 0.0 0.04151 -1.0 0.0 0.0 0.04151 -1.0 0.0 0.0 0.5855 -1.0 0.0 0.0 0.5852 0.0 0.0 1.0 0.0'>
<IS>
<connect nodeField='value_changedprotoField='r_elbow_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for R_WRIST_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='R_WRIST_ANIMATORkey='0.0 0.28 0.32 0.64 0.76 1.0keyValue='0.0 0.0 1.0 0.0 -0.0585279 0.983903 -0.168849 1.85956 -0.0585279 0.983903 -0.168849 1.85956 -0.00222418 0.99801 -0.0630095 1.46072 0.0 1.0 0.0 0.497349 0.0 0.0 1.0 0.0'>
<IS>
<connect nodeField='value_changedprotoField='r_wrist_rotation_changed'/>
</IS>
</OrientationInterpolator>
</Group>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='HUMANOIDROOT_POSITION_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='HUMANOIDROOT_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='SKULLBASE_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='VL5_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='L_HIP_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='L_KNEE_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='L_ANKLE_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='R_HIP_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='R_KNEE_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='R_ANKLE_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='L_SHOULDER_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='L_ELBOW_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='L_WRIST_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='R_SHOULDER_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='R_ELBOW_ANIMATORtoField='set_fraction'/>
<ROUTE fromNode='TIMERfromField='fraction_changedtoNode='R_WRIST_ANIMATORtoField='set_fraction'/>
</ProtoBody>
</ProtoDeclare>
<Viewpoint description='LOA1_SwimmingFlutterKickAnimation sceneposition='0 0 12'/>
<Anchor description='Nancy Divingparameter='"target=_blank"'
  url=' "NancyDiving.x3d" "http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/NancyDiving.x3d" "NancyDiving.wrl" "http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/NancyDiving.wrl" '>
<Shape>
<Text string='"LOA1_SwimmingFlutterKickAnimation.x3d" "defines a prototype" "for animating a humanoid." "" "Click text to see example."'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.8'/>
</Text>
<Appearance>
<Material diffuseColor='1 1 0.2'/>
</Appearance>
</Shape>
</Anchor>
</Scene>
</X3D>
<!--

Index for ProtoDeclare definition : LOA1_DivingAnimation

Index for DEF nodes : HUMANOIDROOT_ANIMATOR, HUMANOIDROOT_POSITION_ANIMATOR, L_ANKLE_ANIMATOR, L_ELBOW_ANIMATOR, L_HIP_ANIMATOR, L_KNEE_ANIMATOR, L_SHOULDER_ANIMATOR, L_WRIST_ANIMATOR, R_ANKLE_ANIMATOR, R_ELBOW_ANIMATOR, R_HIP_ANIMATOR, R_KNEE_ANIMATOR, R_SHOULDER_ANIMATOR, R_WRIST_ANIMATOR, SKULLBASE_ANIMATOR, TIMER, VL5_ANIMATOR

Index for Viewpoint image : Viewpoint_1
-->

<!-- Color key: <X3dNode DEF='idName' field='value'/> matches <XmlElement DEF='idName' attribute='value'/>
(Light blue background: behavior node) (Grey background: inserted documentation) (Magenta background: X3D Extensibility)
    <Prototype name='ProtoName'> <field name='fieldName'/> </Prototype> -->

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