<?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_StandAnimation.x3d '/>
<meta name='descriptioncontent='Humanoid animation prototype reusable by any Humanoid.'/>
<meta name='creatorcontent='Cindy Ballreich cindy@ballreich.net 3Name3D, Joe Williams, Don Brutzman'/>
<meta name='rightscontent='1997 3Name3D / Yglesias, Wallock, Divekar, Inc., all rights reserved.'/>
<meta name='translatorcontent='Ozan APAYDIN'/>
<meta name='createdcontent='1 December 2001'/>
<meta name='modifiedcontent='23 May 2020'/>
<meta name=' TODO content=' consider adding eyeball animation '/>
<meta name='referencecontent=' http://www.ballreich.net/vrml/HAnim/nancy_HAnim.wrl '/>
<meta name='referencecontent=' http://www.HAnim.org '/>
<meta name='referencecontent=' http://HAnim.org/Models '/>
<meta name='referencecontent=' http://HAnim.org/Nodes '/>
<meta name='subjectcontent='Nancy Stand Animation HAnim 2001'/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/LOA1_StandAnimation.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!-- -->
<Scene>
<WorldInfo title='LOA1_StandAnimation.x3d'/>
<ProtoDeclare name='LOA1_StandAnimation'>
<ProtoInterface>
<field name='cycleIntervaltype='SFTimevalue='0.009999999776482582accessType='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 1.0keyValue='0.0 0.0 0.0 0.0 0.0 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>
<!-- ROUTE information for SACROILIAC_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='SACROILIAC_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='lower_body_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for L_HIP_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='L_HIP_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='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 1.0keyValue='0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0'>
<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 1.0keyValue='0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0'>
<IS>
<connect nodeField='value_changedprotoField='l_ankle_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for L_MIDTARSAL_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='L_MIDTARSAL_ANIMATORkey='0.0 1.0keyValue='1 0 0 0 1 0 0 0'>
<IS>
<connect nodeField='value_changedprotoField='l_midtarsal_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for R_HIP_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='R_HIP_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='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 1.0keyValue='0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0'>
<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 1.0keyValue='0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0'>
<IS>
<connect nodeField='value_changedprotoField='r_ankle_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for R_MIDTARSAL_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='R_MIDTARSAL_ANIMATORkey='0.0 1.0keyValue='1 0 0 0 1 0 0 0'>
<IS>
<connect nodeField='value_changedprotoField='r_midtarsal_rotation_changed'/>
</IS>
</OrientationInterpolator>
<!-- ROUTE information for VL5_ANIMATOR node:  [from TIMER.fraction_changed to set_fraction ] -->
<OrientationInterpolator DEF='VL5_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='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.5 1.0keyValue='0.0 0.0 1.0 0.0 -1 0 0 0.5 0.0 0.0 1.0 0.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 1.0keyValue='0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0'>
<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 1.0keyValue='0.0 0.0 1.0 0.0 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 1.0keyValue='0.0 0.0 1.0 0.0 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 1.0keyValue='0.0 0.0 1.0 0.0 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 1.0keyValue='0.0 0.0 1.0 0.0 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 1.0keyValue='0.0 0.0 1.0 0.0 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=' SACROILIAC_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=' L_MIDTARSAL_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=' R_MIDTARSAL_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode=' TIMER' fromField='fraction_changed' toNode=' VL5_ANIMATOR' toField='set_fraction'/>
< ROUTE  fromNode=' TIMER' fromField='fraction_changed' toNode=' SKULLBASE_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>
<!-- ====================================== -->
<!-- Point to example use in case someone inspects this file -->
<Anchor description='InterchangableActorsViaDynamicRoutingparameter='"target=_blank"'
  url=' InterchangableActorsViaDynamicRouting.x3d"https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/InterchangableActorsViaDynamicRouting.x3d" "InterchangableActorsViaDynamicRouting.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/InterchangableActorsViaDynamicRouting.wrl" ' >
<Shape>
<Text string='"LOA1_StandAnimation.x3d" "defines a prototype" "for animating a humanoid." "" "Click this text to see" "InterchangableActorsViaDynamicRouting example."'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.8'/>
</Text>
<Appearance>
<Material diffuseColor='1 1 0.2'/>
</Appearance>
</Shape>
</Anchor>
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: HUMANOIDROOT_ANIMATOR, HUMANOIDROOT_POSITION_ANIMATOR, L_ANKLE_ANIMATOR, L_ELBOW_ANIMATOR, L_HIP_ANIMATOR, L_KNEE_ANIMATOR, L_MIDTARSAL_ANIMATOR, L_SHOULDER_ANIMATOR, L_WRIST_ANIMATOR, R_ANKLE_ANIMATOR, R_ELBOW_ANIMATOR, R_HIP_ANIMATOR, R_KNEE_ANIMATOR, R_MIDTARSAL_ANIMATOR, R_SHOULDER_ANIMATOR, R_WRIST_ANIMATOR, SACROILIAC_ANIMATOR, SKULLBASE_ANIMATOR, TIMER, VL5_ANIMATOR

Index for ProtoDeclare definition: LOA1_StandAnimation
-->

Event Graph ROUTE Table with 19 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 19 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)
SACROILIAC_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)
L_MIDTARSAL_ANIMATOR
OrientationInterpolator
set_fraction
SFFloat
TIMER
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
R_HIP_ANIMATOR
OrientationInterpolator
set_fraction
SFFloat


-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/LOA1_StandAnimationIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/LOA1_StandAnimation.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. -->