<?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>
</head>
<!--
Index for ProtoDeclare definitions:
Displacer,
Humanoid1_1,
Joint,
Segment,
Site
Index for DEF nodes:
HumanoidGroup1,
HumanoidGroup2,
HumanoidGroup3,
HumanoidTransform,
JointTransform,
SegmentGroup,
SiteTransform
-->
<Scene>
<!-- **********Human Model Protypes********* here!!! -->
<ProtoDeclare name='Humanoid1_1' appinfo='The Humanoid node serves as overall container for the Joint Segment Site and Viewpoint nodes which define the skeleton geometry and landmarks of the humanoid figure. Additionally the node provides a means for defining information about the author copyright and usage restrictions of the model.'
documentation='
http://HAnim.org/Specifications/HAnim2001/part1/Humanoid.html
'
>
<ProtoInterface>
<!-- HAnim v1.1 field definitions here!!! -->
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='version' type='SFString' value='1.1' accessType='inputOutput'
appinfo='legal values: 1.1 or 2.0'
/>
<field name='humanoidVersion' type='SFString' accessType='inputOutput'
appinfo='Version of the humanoid being modeled. Hint: HAnim version 2.0'
/>
<field name='info' type='MFString' accessType='inputOutput'/>
<field name='translation' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='rotation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='center' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='scale' type='SFVec3f' value='1 1 1' accessType='inputOutput'/>
<field name='scaleOrientation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='bboxCenter' type='SFVec3f' value='0 0 0' accessType='initializeOnly'/>
<field name='bboxSize' type='SFVec3f' value='-1 -1 -1' accessType='initializeOnly'/>
<field name='humanoidBody' type='MFNode' accessType='inputOutput'
appinfo='HAnim 1.1 field container for body head. Hint: replaced by 2.0 skeleton.'
documentation='
http://HAnim.org/Specifications/HAnim1.1/#humanoid
'
/>
<field name='skeleton' type='MFNode' accessType='inputOutput'
appinfo='HAnim 2.0 field container for body geometry Hint: replaces 1.1 humanoidBody'
documentation='
http://HAnim.org/Specifications/HAnim2001/part1/Humanoid.html
'
/>
<field name='joints' type='MFNode' accessType='inputOutput'
appinfo='Container field for Joint nodes'
/>
<field name='segments' type='MFNode' accessType='inputOutput'
appinfo='Container field for Segment nodes'
/>
<field name='sites' type='MFNode' accessType='inputOutput'
appinfo='Container field for Site nodes'
/>
<field name='viewpoints' type='MFNode' accessType='inputOutput'
appinfo='Container field for Viewpoint nodes'
/>
<field name='skinCoord' type='SFNode' accessType='inputOutput'
appinfo='Hint: HAnim version 2.0'
>
<!-- NULL here!!! -->
</field>
<field name='skinNormal' type='SFNode' accessType='inputOutput'
appinfo='Hint: HAnim version 2.0'
>
<!-- NULL here!!! -->
</field>
</ProtoInterface>
<ProtoBody>
</ProtoBody>
</ProtoDeclare>
<ProtoDeclare name='Joint' appinfo='The Joint node is used as a building block to describe the articulations of the humanoid figure. Each articulation of the humanoid figure is represented by a Joint node each of which is organized into a hierarchy that describes the overall skeleton of the humanoid.'
documentation='
http://HAnim.org/Specifications/HAnim2001/part1/Joint.html
'
>
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='ulimit' type='MFFloat' accessType='inputOutput'/>
<field name='llimit' type='MFFloat' accessType='inputOutput'/>
<field name='limitOrientation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='skinCoordIndex' type='MFInt32' accessType='inputOutput'/>
<field name='skinCoordWeight' type='MFFloat' accessType='inputOutput'/>
<field name='stiffness' type='MFFloat' value='0 0 0' accessType='inputOutput'/>
<field name='translation' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='rotation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='scale' type='SFVec3f' value='1 1 1' accessType='inputOutput'/>
<field name='scaleOrientation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='center' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='bboxCenter' type='SFVec3f' value='0 0 0' accessType='initializeOnly'/>
<field name='bboxSize' type='SFVec3f' value='-1 -1 -1' accessType='initializeOnly'/>
<field name='children' type='MFNode' accessType='inputOutput'/>
<field name='addChildren' type='MFNode' accessType='inputOnly'/>
<field name='removeChildren' type='MFNode' accessType='inputOnly'/>
</ProtoInterface>
<ProtoBody>
<Transform DEF='JointTransform'>
<IS>
<connect nodeField='translation' protoField='translation'/>
<connect nodeField='rotation' protoField='rotation'/>
<connect nodeField='center' protoField='center'/>
<connect nodeField='scale' protoField='scale'/>
<connect nodeField='scaleOrientation' protoField='scaleOrientation'/>
<connect nodeField='bboxCenter' protoField='bboxCenter'/>
<connect nodeField='bboxSize' protoField='bboxSize'/>
<connect nodeField='children' protoField='children'/>
<connect nodeField='addChildren' protoField='addChildren'/>
<connect nodeField='removeChildren' protoField='removeChildren'/>
</IS>
</Transform>
</ProtoBody>
</ProtoDeclare>
<ProtoDeclare name='Segment' appinfo='The Segment node is used describe the attributes of the physical links between the joints of the humanoid figure. Each body part (pelvis thigh calf etc.) of the humanoid figure is represented by a Segment node.'
documentation='
http://HAnim.org/Specifications/HAnim2001/part1/Segment.html
'
>
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='mass' type='SFFloat' value='0' accessType='inputOutput'/>
<field name='centerOfMass' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='momentsOfInertia' type='MFFloat' value='0 0 0 0 0 0 0 0 0' accessType='inputOutput'/>
<field name='bboxCenter' type='SFVec3f' value='0 0 0' accessType='initializeOnly'/>
<field name='bboxSize' type='SFVec3f' value='-1 -1 -1' accessType='initializeOnly'/>
<field name='children' type='MFNode' accessType='inputOutput'/>
<field name='addChildren' type='MFNode' accessType='inputOnly'/>
<field name='removeChildren' type='MFNode' accessType='inputOnly'/>
<field name='coord' type='SFNode' accessType='inputOutput'
appinfo='contains Coordinate nodes'
>
<!-- NULL here!!! -->
</field>
<field name='displacers' type='MFNode' accessType='inputOutput'
appinfo='contains Displacer nodes'
/>
</ProtoInterface>
<ProtoBody>
<Group DEF='SegmentGroup'>
<IS>
<connect nodeField='bboxCenter' protoField='bboxCenter'/>
<connect nodeField='bboxSize' protoField='bboxSize'/>
<connect nodeField='children' protoField='children'/>
<connect nodeField='addChildren' protoField='addChildren'/>
<connect nodeField='removeChildren' protoField='removeChildren'/>
</IS>
</Group>
</ProtoBody>
</ProtoDeclare>
<ProtoDeclare name='Site' appinfo='The Site node can be used for three purposes: (a) to define an "end effector" location which can be used by an inverse kinematics system (b) to define an attachment point for accessories such as jewelry and clothing and (c) to define a location for a virtual camera in the reference frame of a Segment node (such as a view "through the eyes" of the humanoid for use in multi-user worlds).'
documentation='
http://HAnim.org/Specifications/HAnim2001/part1/Site.html
'
>
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='translation' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='rotation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='scale' type='SFVec3f' value='1 1 1' accessType='inputOutput'/>
<field name='scaleOrientation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/>
<field name='center' type='SFVec3f' value='0 0 0' accessType='inputOutput'/>
<field name='bboxCenter' type='SFVec3f' value='0 0 0' accessType='initializeOnly'/>
<field name='bboxSize' type='SFVec3f' value='-1 -1 -1' accessType='initializeOnly'/>
<field name='children' type='MFNode' accessType='inputOutput'/>
<field name='addChildren' type='MFNode' accessType='inputOnly'/>
<field name='removeChildren' type='MFNode' accessType='inputOnly'/>
</ProtoInterface>
<ProtoBody>
<Transform DEF='SiteTransform'>
<IS>
<connect nodeField='translation' protoField='translation'/>
<connect nodeField='rotation' protoField='rotation'/>
<connect nodeField='center' protoField='center'/>
<connect nodeField='scale' protoField='scale'/>
<connect nodeField='scaleOrientation' protoField='scaleOrientation'/>
<connect nodeField='bboxCenter' protoField='bboxCenter'/>
<connect nodeField='bboxSize' protoField='bboxSize'/>
<connect nodeField='children' protoField='children'/>
<connect nodeField='addChildren' protoField='addChildren'/>
<connect nodeField='removeChildren' protoField='removeChildren'/>
</IS>
</Transform>
</ProtoBody>
</ProtoDeclare>
<ProtoDeclare name='Displacer' appinfo='A Displacer can be used in three different ways: (a) identify the vertices corresponding to a particular feature on a Segment (b) represent a particular muscular action which displaces the vertices in various directions (linearly or radially) and (c) represent a complete configuration of the vertices in a Segment.'
documentation='
http://HAnim.org/Specifications/HAnim2001/part1/Displacer.html
'
>
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='coordIndex' type='MFInt32' accessType='inputOutput'/>
<field name='displacements' type='MFVec3f' accessType='inputOutput'/>
</ProtoInterface>
<ProtoBody>
<WorldInfo info='"null body node"'/>
</ProtoBody>
</ProtoDeclare>
<Shape>
<Text string='"Humanoid Animation" "(HAnim) prototype" "implementations"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<Material ambientIntensity='0.25' diffuseColor='0.795918 0.505869 0.093315' shininess='0.39' specularColor='0.923469 0.428866 0.006369'>
<!-- Universal Media Library: Autumn 9 here!!! -->
</Material>
</Appearance>
</Shape>
</Scene>
</X3D>
<!--
Index for ProtoDeclare definitions:
Displacer,
Humanoid1_1,
Joint,
Segment,
Site
Index for DEF nodes:
HumanoidGroup1,
HumanoidGroup2,
HumanoidGroup3,
HumanoidTransform,
JointTransform,
SegmentGroup,
SiteTransform
-->
-->
<!--
Online at
https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/HAnimPrototypesIndex.html
-->
<!--
Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/HAnimPrototypes.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>
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->