<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://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='https://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='23 May 2020'/>
<meta name=' warning content=' not yet tested, need to compare with NancyDivingExample interpolators '/>
<meta name='referencecontent='http://www.HAnim.org'/>
<meta name='referencecontent='http://HAnim.org/Models'/>
<meta name='referencecontent='http://HAnim.org/Nodes'/>
<meta name='subjectcontent='Swimming flutter kick Animation HAnim 2001'/>
<meta name='identifiercontent='https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/LOA1_SwimmingFlutterKickAnimation.x3d'/>
<meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent='../license.html'/>
</head> <!-- -->
X3D Tooltips element index: Anchor, Appearance, connect, field, FontStyle, Group, head, IS, Material, meta, OrientationInterpolator, PositionInterpolator, ProtoBody, ProtoDeclare, ProtoInterface, ROUTE, Scene, Shape, Text, TimeSensor, Viewpoint, WorldInfo, X3D, accessType and type, XML data types, field types


<Scene>
<WorldInfo title='LOA1_SwimmingFlutterKickAnimation.x3d'/>
<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>
<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='TIMER' fromField='fraction_changed' toNode='HUMANOIDROOT_POSITION_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='HUMANOIDROOT_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='SKULLBASE_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='VL5_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='L_HIP_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='L_KNEE_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='L_ANKLE_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='R_HIP_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='R_KNEE_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='R_ANKLE_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='L_SHOULDER_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='L_ELBOW_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='L_WRIST_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='R_SHOULDER_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='R_ELBOW_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode='TIMER' fromField='fraction_changed' toNode='R_WRIST_ANIMATOR' toField='set_fraction'/>
</ProtoBody>
</ProtoDeclare>
<Viewpoint description='LOA1_SwimmingFlutterKickAnimation sceneposition='0 0 12'/>
<Anchor description='Nancy Divingparameter='"target=_blank"'
  url=' "NancyDiving.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/NancyDiving.x3d" "NancyDiving.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/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> <!--

to top <!-- 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 node: Viewpoint_1

Index for ProtoDeclare definition: LOA1_DivingAnimation
-->

Event Graph ROUTE Table entries with 16 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

This node has 16 outgoing ROUTEs, which is greater than $maxROUTEdepth=8
TIMER
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
HUMANOIDROOT_POSITION_ANIMATOR
PositionInterpolator
set_fraction
SFFloat
TIMER
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
HUMANOIDROOT_ANIMATOR
OrientationInterpolator
set_fraction
SFFloat
TIMER
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
SKULLBASE_ANIMATOR
OrientationInterpolator
set_fraction
SFFloat
TIMER
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
VL5_ANIMATOR
OrientationInterpolator
set_fraction
SFFloat
TIMER
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
L_HIP_ANIMATOR
OrientationInterpolator
set_fraction
SFFloat
TIMER
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
L_KNEE_ANIMATOR
OrientationInterpolator
set_fraction
SFFloat
TIMER
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
L_ANKLE_ANIMATOR
OrientationInterpolator
set_fraction
SFFloat
TIMER
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
R_HIP_ANIMATOR
OrientationInterpolator
set_fraction
SFFloat


Anchor
description='Nancy Diving' 
User-interaction hint for this node. 

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/LOA1_SwimmingFlutterKickAnimationIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/LOA1_SwimmingFlutterKickAnimation.x3d -->

<!-- Color legend: X3D terminology <X3dNode DEF='idName' field='value'/> matches XML terminology <XmlElement DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
    <ProtoDeclare name='ProtoName'> <field name='fieldName'/> </ProtoDeclare> -->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->