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='title' content='MetadataPrototypes.x3d'/> |
6 | <meta name='description' content='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='creator' content='Don Brutzman'/> |
8 | <meta name='created' content='17 November 2003'/> |
9 | <meta name='modified' content='12 March 2021'/> |
10 | <meta name='reference' content='MetadataExamples.x3d'/> |
11 | <meta name='subject' content='Metadata nodes, X3D Core component (MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString)'/> |
12 | <meta name='reference' content='https://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/core.html#Metadata'/> |
13 | <meta name='reference' content='https://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/core.html#X3DMetadataObject'/> |
14 | <meta name='reference' content='https://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/core.html#Nodereference'/> |
15 | <meta name='identifier' content='https://www.web3d.org/x3d/content/examples/Basic/development/MetadataPrototypes.x3d'/> |
16 | <meta name='generator' content='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/> |
17 | <meta name='license' content='../license.html'/> |
18 | </head> |
19 | <Scene> |
20 | <!-- ==================== --> |
21 | <ProtoDeclare name='MetadataBoolean' appinfo='MetadataBoolean contains a list of booleans in the value field.'> |
22 | <ProtoInterface> |
23 | <field name='name' type='SFString' accessType='inputOutput'/> |
24 | <field name='value' type='MFBool' accessType='inputOutput'/> |
25 | <field name='reference' type='SFString' accessType='inputOutput'/> |
26 |
<field name='metadata' type='SFNode' accessType='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='metadata' protoField='metadata'/> |
35 | </IS> |
36 | <!-- name holder --> |
37 | <Viewpoint> |
38 | <IS> |
39 | <connect nodeField='description' protoField='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='booleanArray' type='MFBool' accessType='inputOutput'/> |
46 | <IS> |
47 | <connect nodeField='booleanArray' protoField='value'/> |
48 | </IS> |
49 | </Script> |
50 | <!-- reference holder --> |
51 | <Viewpoint> |
52 | <IS> |
53 | <connect nodeField='description' protoField='reference'/> |
54 | </IS> |
55 | </Viewpoint> |
56 | </Group> |
57 | </ProtoBody> |
58 | </ProtoDeclare> |
59 | <!-- ==================== --> |
60 | <ProtoDeclare name='MetadataDouble' appinfo='MetadataDouble contains a list of double-precision floating-point numbers in the value field.'> |
61 | <ProtoInterface> |
62 | <field name='name' type='SFString' accessType='inputOutput'/> |
63 | <field name='value' type='MFDouble' accessType='inputOutput'/> |
64 | <field name='reference' type='SFString' accessType='inputOutput'/> |
65 |
<field name='metadata' type='SFNode' accessType='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='metadata' protoField='metadata'/> |
74 | </IS> |
75 | <!-- name holder --> |
76 | <Viewpoint> |
77 | <IS> |
78 | <connect nodeField='description' protoField='name'/> |
79 | </IS> |
80 | </Viewpoint> |
81 | <!-- value holder: X3D MFDouble maps to VRML 97MFFloat --> |
82 | <Shape> |
83 | <Text string='""'> |
84 | <IS> |
85 | <connect nodeField='length' protoField='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='description' protoField='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='MetadataFloat' appinfo='MetadataFloat contains a list of floating-point numbers in the value field.'> |
105 | <ProtoInterface> |
106 | <field name='name' type='SFString' accessType='inputOutput'/> |
107 | <field name='value' type='MFFloat' accessType='inputOutput'/> |
108 | <field name='reference' type='SFString' accessType='inputOutput'/> |
109 |
<field name='metadata' type='SFNode' accessType='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='metadata' protoField='metadata'/> |
118 | </IS> |
119 | <!-- name holder --> |
120 | <Viewpoint> |
121 | <IS> |
122 | <connect nodeField='description' protoField='name'/> |
123 | </IS> |
124 | </Viewpoint> |
125 | <!-- value holder --> |
126 | <Shape> |
127 | <Text string='""'> |
128 | <IS> |
129 | <connect nodeField='length' protoField='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='description' protoField='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='MetadataInteger' appinfo='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='name' type='SFString' accessType='inputOutput'/> |
152 | <field name='value' type='MFInt32' accessType='initializeOnly'/> |
153 | <field name='set_value' type='MFInt32' accessType='inputOnly'/> |
154 | <field name='reference' type='SFString' accessType='inputOutput'/> |
155 |
<field name='metadata' type='SFNode' accessType='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='metadata' protoField='metadata'/> |
164 | </IS> |
165 | <!-- name holder --> |
166 | <Viewpoint> |
167 | <IS> |
168 | <connect nodeField='description' protoField='name'/> |
169 | </IS> |
170 | </Viewpoint> |
171 | <!-- value holder --> |
172 | <Shape> |
173 | <IndexedLineSet> |
174 | <IS> |
175 | <connect nodeField='colorIndex' protoField='value'/> |
176 | <connect nodeField='set_colorIndex' protoField='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='description' protoField='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='MetadataSet' appinfo='MetadataSet contains a list of Metadata nodes in the value field. MetadataSet can contain other MetadataSet nodes.'> |
196 | <ProtoInterface> |
197 | <field name='name' type='SFString' accessType='inputOutput'/> |
198 | <field name='value' type='MFNode' accessType='inputOutput'> |
199 | <!-- Specification initialization: NULL node --> |
200 | </field> |
201 | <field name='reference' type='SFString' accessType='inputOutput'/> |
202 |
<field name='metadata' type='SFNode' accessType='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='metadata' protoField='metadata'/> |
211 | </IS> |
212 | <!-- name holder --> |
213 | <Viewpoint> |
214 | <IS> |
215 | <connect nodeField='description' protoField='name'/> |
216 | </IS> |
217 | </Viewpoint> |
218 | <!-- value holder --> |
219 | <Group> |
220 | <IS> |
221 | <connect nodeField='children' protoField='value'/> |
222 | </IS> |
223 | </Group> |
224 | <!-- reference holder --> |
225 | <Viewpoint> |
226 | <IS> |
227 | <connect nodeField='description' protoField='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='MetadataString' appinfo='MetadataString contains a list of strings in the value field.'> |
236 | <ProtoInterface> |
237 | <field name='name' type='SFString' accessType='inputOutput'/> |
238 | <field name='value' type='MFString' accessType='inputOutput'/> |
239 | <field name='reference' type='SFString' accessType='inputOutput'/> |
240 |
<field name='metadata' type='SFNode' accessType='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='metadata' protoField='metadata'/> |
249 | </IS> |
250 | <!-- name holder --> |
251 | <Viewpoint> |
252 | <IS> |
253 | <connect nodeField='description' protoField='name'/> |
254 | </IS> |
255 | </Viewpoint> |
256 | <!-- value holder --> |
257 | <Shape> |
258 | <Text> |
259 | <IS> |
260 | <connect nodeField='string' protoField='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='description' protoField='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.25' skyColor='0.25 0.25 0.25'/> |
280 | <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" '> |
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 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. |
<!--
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. -->