<?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>
</head>
<!--
<!--
Event Graph ROUTE Table
shows event connections
-->
<!--
Index for DEF nodes:
HideWarnings2,
HideWarnings3,
HideWarnings4,
HideWarnings5,
LinkToExamples
Index for Viewpoint nodes:
Viewpoint_1,
Viewpoint_2,
Viewpoint_3,
Viewpoint_4,
Viewpoint_5,
Viewpoint_6,
Viewpoint_7,
Viewpoint_8,
Viewpoint_9,
Viewpoint_10,
Viewpoint_11,
Viewpoint_12
Index for ProtoDeclare definitions:
MetadataBoolean,
MetadataDouble,
MetadataFloat,
MetadataInteger,
MetadataSet,
MetadataString
-->
<Scene>
<!-- ==================== -->
<ProtoDeclare name='MetadataBoolean' appinfo='MetadataBoolean contains a list of booleans in the value field.'
>
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='value' type='MFBool' accessType='inputOutput'/>
<field name='reference' type='SFString' accessType='inputOutput'/>
<field name='metadata' type='SFNode' accessType='inputOutput'
appinfo='Metadata node only'
>
<!-- initialization node (if any) goes here -->
</field>
</ProtoInterface>
<ProtoBody>
<WorldInfo info='"WorldInfo as first node in the ProtoBody precludes any possible rendering of further nodes in this prototype"'/>
<Group>
<IS>
<connect nodeField='metadata' protoField='metadata'/>
</IS>
<!-- name holder -->
<Viewpoint>
<IS>
<connect nodeField='description' protoField='name'/>
</IS>
</Viewpoint>
<!-- value holder; IS/connect possibilities are limited since no MFBool fields exist in other VRML/X3D nodes -->
<!-- Alternative: no metadata holder, since there is no exposedField SFNode in VRML 97. metadata SFNode simply sits in the ProtoInterface. Run-time instantiation support may vary. -->
<Script
url='
"ignoreWarning.js" "https://www.web3d.org/x3d/content/examples/Basic/development/ignoreWarning.js" '
>
<field name='booleanArray' type='MFBool' accessType='inputOutput'/>
<IS>
<connect nodeField='booleanArray' protoField='value'/>
</IS>
</Script>
<!-- reference holder -->
<Viewpoint>
<IS>
<connect nodeField='description' protoField='reference'/>
</IS>
</Viewpoint>
</Group>
</ProtoBody>
</ProtoDeclare>
<!-- ==================== -->
<ProtoDeclare name='MetadataDouble' appinfo='MetadataDouble contains a list of double-precision floating-point numbers in the value field.'
>
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='value' type='MFDouble' accessType='inputOutput'/>
<field name='reference' type='SFString' accessType='inputOutput'/>
<field name='metadata' type='SFNode' accessType='inputOutput'
appinfo='[X3DMetadataObject]'
>
<!-- Specification initialization: NULL node -->
</field>
</ProtoInterface>
<ProtoBody>
<WorldInfo info='"WorldInfo as first node in the ProtoBody precludes any possible rendering of further nodes in this prototype"'/>
<Group>
<IS>
<connect nodeField='metadata' protoField='metadata'/>
</IS>
<!-- name holder -->
<Viewpoint>
<IS>
<connect nodeField='description' protoField='name'/>
</IS>
</Viewpoint>
<!-- value holder: X3D MFDouble maps to VRML 97MFFloat -->
<Shape>
<Text string='""'>
<IS>
<connect nodeField='length' protoField='value'/>
</IS>
</Text>
<Appearance DEF='HideWarnings2'>
<!-- note that each Prototype has an independent DEF/USE namespace, and thus must avoid re-using identical DEF names within multiple prototype declarations in order to pass all validation requirements. -->
<Material/>
</Appearance>
</Shape>
<!-- reference holder -->
<Viewpoint>
<IS>
<connect nodeField='description' protoField='reference'/>
</IS>
</Viewpoint>
<!-- no metadata holder, since there is no exposedField SFNode in VRML 97. metadata SFNode simply sits in the ProtoInterface. Run-time instantiation support may vary. -->
</Group>
</ProtoBody>
</ProtoDeclare>
<!-- ==================== -->
<ProtoDeclare name='MetadataFloat' appinfo='MetadataFloat contains a list of floating-point numbers in the value field.'
>
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='value' type='MFFloat' accessType='inputOutput'/>
<field name='reference' type='SFString' accessType='inputOutput'/>
<field name='metadata' type='SFNode' accessType='inputOutput'
appinfo='[X3DMetadataObject]'
>
<!-- Specification initialization: NULL node -->
</field>
</ProtoInterface>
<ProtoBody>
<WorldInfo info='"WorldInfo as first node in the ProtoBody precludes any possible rendering of further nodes in this prototype"'/>
<Group>
<IS>
<connect nodeField='metadata' protoField='metadata'/>
</IS>
<!-- name holder -->
<Viewpoint>
<IS>
<connect nodeField='description' protoField='name'/>
</IS>
</Viewpoint>
<!-- value holder -->
<Shape>
<Text string='""'>
<IS>
<connect nodeField='length' protoField='value'/>
</IS>
</Text>
<Appearance DEF='HideWarnings3'>
<!-- note that each Prototype has an independent DEF/USE namespace, and thus must avoid re-using identical DEF names within multiple prototype declarations in order to pass all validation requirements. -->
<Material/>
</Appearance>
</Shape>
<!-- reference holder -->
<Viewpoint>
<IS>
<connect nodeField='description' protoField='reference'/>
</IS>
</Viewpoint>
<!-- no metadata holder, since there is no exposedField SFNode in VRML 97. metadata SFNode simply sits in the ProtoInterface. Run-time instantiation support may vary. -->
</Group>
</ProtoBody>
</ProtoDeclare>
<!-- ==================== -->
<ProtoDeclare name='MetadataInteger' appinfo='MetadataInteger contains a list of 32-bit integer numbers in the value field.'
>
<!-- VRML 97 has no native exposedField MFInt32, and so must split value accessors to match available accessTypes. -->
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='value' type='MFInt32' accessType='initializeOnly'/>
<field name='set_value' type='MFInt32' accessType='inputOnly'/>
<field name='reference' type='SFString' accessType='inputOutput'/>
<field name='metadata' type='SFNode' accessType='inputOutput'
appinfo='[X3DMetadataObject]'
>
<!-- Specification initialization: NULL node -->
</field>
</ProtoInterface>
<ProtoBody>
<WorldInfo info='"WorldInfo as first node in the ProtoBody precludes any possible rendering of further nodes in this prototype"'/>
<Group>
<IS>
<connect nodeField='metadata' protoField='metadata'/>
</IS>
<!-- name holder -->
<Viewpoint>
<IS>
<connect nodeField='description' protoField='name'/>
</IS>
</Viewpoint>
<!-- value holder -->
<Shape>
<IndexedLineSet>
<IS>
<connect nodeField='colorIndex' protoField='value'/>
<connect nodeField='set_colorIndex' protoField='set_value'/>
</IS>
</IndexedLineSet>
<Appearance DEF='HideWarnings4'>
<!-- note that each Prototype has an independent DEF/USE namespace, and thus must avoid re-using identical DEF names within multiple prototype declarations in order to pass all validation requirements. -->
<Material emissiveColor='0.8 0.8 0.8'/>
</Appearance>
</Shape>
<!-- reference holder -->
<Viewpoint>
<IS>
<connect nodeField='description' protoField='reference'/>
</IS>
</Viewpoint>
<!-- no metadata holder, since there is no exposedField SFNode in VRML 97. metadata SFNode simply sits in the ProtoInterface. Run-time instantiation support may vary. -->
</Group>
</ProtoBody>
</ProtoDeclare>
<!-- ==================== -->
<ProtoDeclare name='MetadataSet' appinfo='MetadataSet contains a list of Metadata nodes in the value field. MetadataSet can contain other MetadataSet nodes.'
>
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='value' type='MFNode' accessType='inputOutput'>
<!-- Specification initialization: NULL node -->
</field>
<field name='reference' type='SFString' accessType='inputOutput'/>
<field name='metadata' type='SFNode' accessType='inputOutput'
appinfo='[X3DMetadataObject]'
>
<!-- Specification initialization: NULL node -->
</field>
</ProtoInterface>
<ProtoBody>
<WorldInfo info='"WorldInfo as first node in the ProtoBody precludes any possible rendering of further nodes in this prototype"'/>
<Group>
<IS>
<connect nodeField='metadata' protoField='metadata'/>
</IS>
<!-- name holder -->
<Viewpoint>
<IS>
<connect nodeField='description' protoField='name'/>
</IS>
</Viewpoint>
<!-- value holder -->
<Group>
<IS>
<connect nodeField='children' protoField='value'/>
</IS>
</Group>
<!-- reference holder -->
<Viewpoint>
<IS>
<connect nodeField='description' protoField='reference'/>
</IS>
</Viewpoint>
<!-- no metadata holder, since there is no exposedField SFNode in VRML 97. metadata SFNode simply sits in the ProtoInterface. Run-time instantiation support may vary. -->
</Group>
</ProtoBody>
</ProtoDeclare>
<!-- ==================== -->
<ProtoDeclare name='MetadataString' appinfo='MetadataString contains a list of strings in the value field.'
>
<ProtoInterface>
<field name='name' type='SFString' accessType='inputOutput'/>
<field name='value' type='MFString' accessType='inputOutput'/>
<field name='reference' type='SFString' accessType='inputOutput'/>
<field name='metadata' type='SFNode' accessType='inputOutput'
appinfo='Metadata node only'
>
<!-- Specification initialization: NULL node -->
</field>
</ProtoInterface>
<ProtoBody>
<WorldInfo info='"WorldInfo as first node in the ProtoBody precludes any possible rendering of further nodes in this prototype"'/>
<Group>
<IS>
<connect nodeField='metadata' protoField='metadata'/>
</IS>
<!-- name holder -->
<Viewpoint>
<IS>
<connect nodeField='description' protoField='name'/>
</IS>
</Viewpoint>
<!-- value holder -->
<Shape>
<Text>
<IS>
<connect nodeField='string' protoField='value'/>
</IS>
</Text>
<Appearance DEF='HideWarnings5'>
<!-- note that each Prototype has an independent DEF/USE namespace, and thus must avoid re-using identical DEF names within multiple prototype declarations in order to pass all validation requirements. -->
<Material/>
</Appearance>
</Shape>
<!-- reference holder -->
<Viewpoint>
<IS>
<connect nodeField='description' protoField='reference'/>
</IS>
</Viewpoint>
<!-- no metadata holder, since there is no exposedField SFNode in VRML 97. metadata SFNode simply sits in the ProtoInterface. Run-time instantiation support may vary. -->
</Group>
</ProtoBody>
</ProtoDeclare>
<!-- ==================== -->
<Background groundColor='0.25 0.25 0.25' skyColor='0.25 0.25 0.25'/>
<Anchor DEF='LinkToExamples' description='link to examples'
url='
MetadataExamples.x3d"https://www.web3d.org/x3d/content/examples/Basic/development/MetadataExamples.x3d" "MetadataExamples.wrl" "https://www.web3d.org/x3d/content/examples/Basic/development/MetadataExamples.wrl" '
>
<Shape>
<Appearance>
<Material diffuseColor='0.8 0.6 0.2'/>
</Appearance>
<Text string='"MetadataPrototypes" "is a developmental file." "Click this text to view" "MetadataExamples"'>
<FontStyle justify='"MIDDLE" "MIDDLE"' size='0.75'/>
</Text>
</Shape>
</Anchor>
</Scene>
</X3D>
<!--
<!--
Event Graph ROUTE Table
shows event connections
-->
<!--
Index for DEF nodes:
HideWarnings2,
HideWarnings3,
HideWarnings4,
HideWarnings5,
LinkToExamples
Index for Viewpoint nodes:
Viewpoint_1,
Viewpoint_2,
Viewpoint_3,
Viewpoint_4,
Viewpoint_5,
Viewpoint_6,
Viewpoint_7,
Viewpoint_8,
Viewpoint_9,
Viewpoint_10,
Viewpoint_11,
Viewpoint_12
Index for ProtoDeclare definitions:
MetadataBoolean,
MetadataDouble,
MetadataFloat,
MetadataInteger,
MetadataSet,
MetadataString
-->
-->
<!--
Online at
https://www.web3d.org/x3d/content/examples/Basic/development/MetadataPrototypesIndex.html
-->
<!--
Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/development/MetadataPrototypes.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.
-->