X3D Model Documentation: MetadataPrototypes.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2 
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
  3  <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'>
  4       <head>
  5            <meta name='titlecontent='MetadataPrototypes.x3d'/>
  6            <meta name='descriptioncontent='New X3D Metadata nodes in Core component (MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString) implemented as prototypes for backwards compatibility with VRML 97.'/>
  7            <meta name='creatorcontent='Don Brutzman'/>
  8            <meta name='createdcontent='17 November 2003'/>
  9            <meta name='modifiedcontent='12 March 2021'/>
 10            <meta name='referencecontent='MetadataExamples.x3d'/>
 11            <meta name='subjectcontent='Metadata nodes, X3D Core component (MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString)'/>
 12            <meta name='referencecontent='https://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/core.html#Metadata'/>
 13            <meta name='referencecontent='https://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/core.html#X3DMetadataObject'/>
 14            <meta name='referencecontent='https://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/core.html#Nodereference'/>
 15            <meta name='identifiercontent='https://www.web3d.org/x3d/content/examples/Basic/development/MetadataPrototypes.x3d'/>
 16            <meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
 17            <meta name='licensecontent='../license.html'/>
 18       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->

<!-- to top 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
-->
 19       <Scene>
 20            <!-- ==================== -->
 21            <ProtoDeclare name='MetadataBooleanappinfo='MetadataBoolean contains a list of booleans in the value field.'>
 22                 <ProtoInterface>
 23                      <field name='nametype='SFStringaccessType='inputOutput'/>
 24                      <field name='valuetype='MFBoolaccessType='inputOutput'/>
 25                      <field name='referencetype='SFStringaccessType='inputOutput'/>
 26                      <field name='metadatatype='SFNodeaccessType='inputOutput'
                     appinfo='Metadata node only'>
 27                           <!-- initialization node (if any) goes here -->
 28                      </field>
 29                 </ProtoInterface>
 30                 <ProtoBody>
 31                      <WorldInfo info='"WorldInfo as first node in the ProtoBody precludes any possible rendering of further nodes in this prototype"'/>
 32                      <Group>
 33                           <IS>
 34                                <connect nodeField='metadataprotoField='metadata'/>
 35                           </IS>
 36                           <!-- name holder -->
 37                           <Viewpoint>
 38                                <IS>
 39                                     <connect nodeField='descriptionprotoField='name'/>
 40                                </IS>
 41                           </Viewpoint>
 42                           <!-- value holder; IS/connect possibilities are limited since no MFBool fields exist in other VRML/X3D nodes -->
 43                           <!-- 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. -->
 44                           <Script   url=' "ignoreWarning.js" "https://www.web3d.org/x3d/content/examples/Basic/development/ignoreWarning.js" '>
 45                                <field name='booleanArraytype='MFBoolaccessType='inputOutput'/>
 46                                <IS>
 47                                     <connect nodeField='booleanArrayprotoField='value'/>
 48                                </IS>
 49                           </Script>
 50                           <!-- reference holder -->
 51                           <Viewpoint>
 52                                <IS>
 53                                     <connect nodeField='descriptionprotoField='reference'/>
 54                                </IS>
 55                           </Viewpoint>
 56                      </Group>
 57                 </ProtoBody>
 58            </ProtoDeclare>
 59            <!-- ==================== -->
 60            <ProtoDeclare name='MetadataDoubleappinfo='MetadataDouble contains a list of double-precision floating-point numbers in the value field.'>
 61                 <ProtoInterface>
 62                      <field name='nametype='SFStringaccessType='inputOutput'/>
 63                      <field name='valuetype='MFDoubleaccessType='inputOutput'/>
 64                      <field name='referencetype='SFStringaccessType='inputOutput'/>
 65                      <field name='metadatatype='SFNodeaccessType='inputOutput'
                     appinfo='[X3DMetadataObject]'>
 66                           <!-- Specification initialization: NULL node -->
 67                      </field>
 68                 </ProtoInterface>
 69                 <ProtoBody>
 70                      <WorldInfo info='"WorldInfo as first node in the ProtoBody precludes any possible rendering of further nodes in this prototype"'/>
 71                      <Group>
 72                           <IS>
 73                                <connect nodeField='metadataprotoField='metadata'/>
 74                           </IS>
 75                           <!-- name holder -->
 76                           <Viewpoint>
 77                                <IS>
 78                                     <connect nodeField='descriptionprotoField='name'/>
 79                                </IS>
 80                           </Viewpoint>
 81                           <!-- value holder: X3D MFDouble maps to VRML 97MFFloat -->
 82                           <Shape>
 83                                <Text string='""'>
 84                                     <IS>
 85                                          <connect nodeField='lengthprotoField='value'/>
 86                                     </IS>
 87                                </Text>
 88                                <Appearance DEF='HideWarnings2'>
 89                                     <!-- 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. -->
 90                                     <Material/>
 91                                </Appearance>
 92                           </Shape>
 93                           <!-- reference holder -->
 94                           <Viewpoint>
 95                                <IS>
 96                                     <connect nodeField='descriptionprotoField='reference'/>
 97                                </IS>
 98                           </Viewpoint>
 99                           <!-- 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. -->
100                      </Group>
101                 </ProtoBody>
102            </ProtoDeclare>
103            <!-- ==================== -->
104            <ProtoDeclare name='MetadataFloatappinfo='MetadataFloat contains a list of floating-point numbers in the value field.'>
105                 <ProtoInterface>
106                      <field name='nametype='SFStringaccessType='inputOutput'/>
107                      <field name='valuetype='MFFloataccessType='inputOutput'/>
108                      <field name='referencetype='SFStringaccessType='inputOutput'/>
109                      <field name='metadatatype='SFNodeaccessType='inputOutput'
                     appinfo='[X3DMetadataObject]'>
110                           <!-- Specification initialization: NULL node -->
111                      </field>
112                 </ProtoInterface>
113                 <ProtoBody>
114                      <WorldInfo info='"WorldInfo as first node in the ProtoBody precludes any possible rendering of further nodes in this prototype"'/>
115                      <Group>
116                           <IS>
117                                <connect nodeField='metadataprotoField='metadata'/>
118                           </IS>
119                           <!-- name holder -->
120                           <Viewpoint>
121                                <IS>
122                                     <connect nodeField='descriptionprotoField='name'/>
123                                </IS>
124                           </Viewpoint>
125                           <!-- value holder -->
126                           <Shape>
127                                <Text string='""'>
128                                     <IS>
129                                          <connect nodeField='lengthprotoField='value'/>
130                                     </IS>
131                                </Text>
132                                <Appearance DEF='HideWarnings3'>
133                                     <!-- 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. -->
134                                     <Material/>
135                                </Appearance>
136                           </Shape>
137                           <!-- reference holder -->
138                           <Viewpoint>
139                                <IS>
140                                     <connect nodeField='descriptionprotoField='reference'/>
141                                </IS>
142                           </Viewpoint>
143                           <!-- 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. -->
144                      </Group>
145                 </ProtoBody>
146            </ProtoDeclare>
147            <!-- ==================== -->
148            <ProtoDeclare name='MetadataIntegerappinfo='MetadataInteger contains a list of 32-bit integer numbers in the value field.'>
149                 <!-- VRML 97 has no native exposedField MFInt32, and so must split value accessors to match available accessTypes. -->
150                 <ProtoInterface>
151                      <field name='nametype='SFStringaccessType='inputOutput'/>
152                      <field name='valuetype='MFInt32accessType='initializeOnly'/>
153                      <field name='set_valuetype='MFInt32accessType='inputOnly'/>
154                      <field name='referencetype='SFStringaccessType='inputOutput'/>
155                      <field name='metadatatype='SFNodeaccessType='inputOutput'
                     appinfo='[X3DMetadataObject]'>
156                           <!-- Specification initialization: NULL node -->
157                      </field>
158                 </ProtoInterface>
159                 <ProtoBody>
160                      <WorldInfo info='"WorldInfo as first node in the ProtoBody precludes any possible rendering of further nodes in this prototype"'/>
161                      <Group>
162                           <IS>
163                                <connect nodeField='metadataprotoField='metadata'/>
164                           </IS>
165                           <!-- name holder -->
166                           <Viewpoint>
167                                <IS>
168                                     <connect nodeField='descriptionprotoField='name'/>
169                                </IS>
170                           </Viewpoint>
171                           <!-- value holder -->
172                           <Shape>
173                                <IndexedLineSet>
174                                     <IS>
175                                          <connect nodeField='colorIndexprotoField='value'/>
176                                          <connect nodeField='set_colorIndexprotoField='set_value'/>
177                                     </IS>
178                                </IndexedLineSet>
179                                <Appearance DEF='HideWarnings4'>
180                                     <!-- 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. -->
181                                     <Material emissiveColor='0.8 0.8 0.8'/>
182                                </Appearance>
183                           </Shape>
184                           <!-- reference holder -->
185                           <Viewpoint>
186                                <IS>
187                                     <connect nodeField='descriptionprotoField='reference'/>
188                                </IS>
189                           </Viewpoint>
190                           <!-- 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. -->
191                      </Group>
192                 </ProtoBody>
193            </ProtoDeclare>
194            <!-- ==================== -->
195            <ProtoDeclare name='MetadataSetappinfo='MetadataSet contains a list of Metadata nodes in the value field. MetadataSet can contain other MetadataSet nodes.'>
196                 <ProtoInterface>
197                      <field name='nametype='SFStringaccessType='inputOutput'/>
198                      <field name='valuetype='MFNodeaccessType='inputOutput'>
199                           <!-- Specification initialization: NULL node -->
200                      </field>
201                      <field name='referencetype='SFStringaccessType='inputOutput'/>
202                      <field name='metadatatype='SFNodeaccessType='inputOutput'
                     appinfo='[X3DMetadataObject]'>
203                           <!-- Specification initialization: NULL node -->
204                      </field>
205                 </ProtoInterface>
206                 <ProtoBody>
207                      <WorldInfo info='"WorldInfo as first node in the ProtoBody precludes any possible rendering of further nodes in this prototype"'/>
208                      <Group>
209                           <IS>
210                                <connect nodeField='metadataprotoField='metadata'/>
211                           </IS>
212                           <!-- name holder -->
213                           <Viewpoint>
214                                <IS>
215                                     <connect nodeField='descriptionprotoField='name'/>
216                                </IS>
217                           </Viewpoint>
218                           <!-- value holder -->
219                           <Group>
220                                <IS>
221                                     <connect nodeField='childrenprotoField='value'/>
222                                </IS>
223                           </Group>
224                           <!-- reference holder -->
225                           <Viewpoint>
226                                <IS>
227                                     <connect nodeField='descriptionprotoField='reference'/>
228                                </IS>
229                           </Viewpoint>
230                           <!-- 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. -->
231                      </Group>
232                 </ProtoBody>
233            </ProtoDeclare>
234            <!-- ==================== -->
235            <ProtoDeclare name='MetadataStringappinfo='MetadataString contains a list of strings in the value field.'>
236                 <ProtoInterface>
237                      <field name='nametype='SFStringaccessType='inputOutput'/>
238                      <field name='valuetype='MFStringaccessType='inputOutput'/>
239                      <field name='referencetype='SFStringaccessType='inputOutput'/>
240                      <field name='metadatatype='SFNodeaccessType='inputOutput'
                     appinfo='Metadata node only'>
241                           <!-- Specification initialization: NULL node -->
242                      </field>
243                 </ProtoInterface>
244                 <ProtoBody>
245                      <WorldInfo info='"WorldInfo as first node in the ProtoBody precludes any possible rendering of further nodes in this prototype"'/>
246                      <Group>
247                           <IS>
248                                <connect nodeField='metadataprotoField='metadata'/>
249                           </IS>
250                           <!-- name holder -->
251                           <Viewpoint>
252                                <IS>
253                                     <connect nodeField='descriptionprotoField='name'/>
254                                </IS>
255                           </Viewpoint>
256                           <!-- value holder -->
257                           <Shape>
258                                <Text>
259                                     <IS>
260                                          <connect nodeField='stringprotoField='value'/>
261                                     </IS>
262                                </Text>
263                                <Appearance DEF='HideWarnings5'>
264                                     <!-- 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. -->
265                                     <Material/>
266                                </Appearance>
267                           </Shape>
268                           <!-- reference holder -->
269                           <Viewpoint>
270                                <IS>
271                                     <connect nodeField='descriptionprotoField='reference'/>
272                                </IS>
273                           </Viewpoint>
274                           <!-- 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. -->
275                      </Group>
276                 </ProtoBody>
277            </ProtoDeclare>
278            <!-- ==================== -->
279            <Background groundColor='0.25 0.25 0.25skyColor='0.25 0.25 0.25'/>
280            <Anchor DEF='LinkToExamplesdescription='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" '>
281                 <Shape>
282                      <Appearance>
283                           <Material diffuseColor='0.8 0.6 0.2'/>
284                      </Appearance>
285                      <Text string='"MetadataPrototypes" "is a developmental file." "Click this text to view" "MetadataExamples"'>
286                           <FontStyle justify='"MIDDLE" "MIDDLE"size='0.75'/>
287                      </Text>
288                 </Shape>
289            </Anchor>
290       </Scene>
291  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->

<!-- to top 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
-->
X3D Tooltips element index: Anchor, Appearance, Background, connect, field, FontStyle, Group, head, IndexedLineSet, IS, Material, meta, ProtoBody, ProtoDeclare, ProtoInterface, Scene, Script, Shape, Text, Viewpoint, WorldInfo, X3D, accessType and type, XML data types, field types

Event Graph ROUTE Table with 0 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.

LinkToExamples
Anchor
description='link to examples' 
User-interaction hint for this node. 
Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- 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> -->

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