X3D Model Documentation: TwoLeggedTablePrototype.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
  3  <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'>
  4       <head>
  5            <meta name='titlecontent=' TwoLeggedTablePrototype.x3d '/>
  6            <meta name='descriptioncontent='X3D encodings example: defining a Prototype, demonstration of IS/connect definitions.'/>
  7            <meta name='creatorcontent='Don Brutzman and Joe Williams'/>
  8            <meta name='createdcontent='1 June 2002'/>
  9            <meta name='modifiedcontent='31 January 2025'/>
 10            <meta name='specificationSectioncontent='X3D encodings, ISO/IEC 19776-1.3, Part 1: XML encoding, Annex C.4 Prototype example'/>
 11            <meta name='specificationUrlcontent='https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/examples.html#PrototypeExample'/>
 12            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Basic/X3dSpecifications/TwoLeggedTablePrototype.x3d '/>
 13            <meta name='generatorcontent='X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 14            <meta name='licensecontent='../license.html'/>
 15       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: Leg, LegMaterial, TableTopMaterial, TCT, TwoTables

Index for ProtoDeclare definition: TwoColorTable
-->
 16       <Scene>
 17            <WorldInfo title='TwoLeggedTablePrototype.x3d'/>
 18            <NavigationInfo/>
 19            <!-- Use the Examine viewer -->
 20            <ProtoDeclare name='TwoColorTable'>
 21                 <ProtoInterface>
 22                      <field name='legColortype='SFColorvalue='.8 .4 .7accessType='initializeOnly'/>
 23                      <field name='topColortype='SFColorvalue='.6 .6 .1accessType='initializeOnly'/>
 24                 </ProtoInterface>
 25                 <ProtoBody>
 26                      <Transform>
 27                           <Transform translation='0.0 0.6 0.0'>
 28                                <!-- table top -->
 29                                <Shape>
 30                                     <Appearance>
 31                                          <Material DEF='TableTopMaterial'>
 32                                               <IS>
 33                                                    <connect nodeField='diffuseColorprotoField='topColor'/>
 34                                               </IS>
 35                                          </Material>
 36                                     </Appearance>
 37                                     <Box size='1.2 0.2 1.2'/>
 38                                </Shape>
 39                           </Transform>
 40                           <Transform translation='-0.5 0.0 -0.5'>
 41                                <!-- first table leg -->
 42 
                              <!-- Shape Leg is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                              <Shape DEF='Leg'>
 43                                     <Appearance>
 44                                          <Material DEF='LegMaterialdiffuseColor='1.0 0.0 0.0'>
 45                                               <IS>
 46                                                    <connect nodeField='diffuseColorprotoField='legColor'/>
 47                                               </IS>
 48                                          </Material>
 49                                     </Appearance>
 50                                     <Cylinder height='1.0radius='0.1'/>
 51                                </Shape>
 52                           </Transform>
 53                           <Transform translation='0.5 0.0 -0.5'>
 54                                <!-- another table leg -->
 55                                <Shape USE='Leg'/>
 56                           </Transform>
 57                           <Transform translation='-0.5 0.0 0.5'>
 58                                <Shape USE='Leg'/>
 59                                <!-- another table leg -->
 60                           </Transform>
 61                           <Transform translation='0.5 0.0 0.5'>
 62                                <Shape USE='Leg'/>
 63                                <!-- another table leg -->
 64                           </Transform>
 65                           <!-- End of root Transform's children -->
 66                      </Transform>
 67                      <!-- End of root Transform -->
 68                 </ProtoBody>
 69            </ProtoDeclare>
 70            <!-- End of prototype -->
 71            <!-- The prototype is now defined. Although it contains a number of nodes, only the legColor and topColor fields are public. Instead of using the default legColor and topColor, this instance of the table has red legs and a green top: -->
 72            <!-- show both DEF ProtoInstance and USE ProtoInstance -->
 73            <Group DEF='TwoTables'>
 74                 <Transform translation='-1 0 0'>
 75 
                    <!-- ProtoInstance TCT is a DEF node that has 1 USE node: USE_1 -->
                    <ProtoInstance name='TwoColorTableDEF='TCT'>
 76                           <fieldValue name='legColorvalue='1 0 0'/>
 77                           <fieldValue name='topColorvalue='0 1 0'/>
 78                      </ProtoInstance>
 79                 </Transform>
 80                 <Transform translation='1 0 0'>
 81                      <ProtoInstance USE='TCT'/>
 82                 </Transform>
 83            </Group>
 84       </Scene>
 85  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: Leg, LegMaterial, TableTopMaterial, TCT, TwoTables

Index for ProtoDeclare definition: TwoColorTable
-->
X3D Tooltips element index: Appearance, Box, connect, Cylinder, field, fieldValue, Group, head, IS, Material, meta, NavigationInfo, ProtoBody, ProtoDeclare, ProtoInstance, ProtoInterface, Scene, Shape, Transform, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and 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.

TCT
ProtoInstance
TwoColorTable
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

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/X3dSpecifications/TwoLeggedTablePrototypeIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/X3dSpecifications/TwoLeggedTablePrototype.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idNamefield='value'/> matches XML terminology <XmlElement  DEF='idNameattribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

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