<?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>
    <meta content='GridXZPrototype.x3d' name='title'/>
    <meta content='Don Brutzman' name='creator'/>
    <meta content='2 February 2003' name='created'/>
    <meta content='28 November 2019' name='modified'/>
    <meta content='Line grid authoring tool to enable precise measurement of objects in 3D space - fixed position. Oriented along XZ plane, size 20m by 20m, default block size 1m by 1m.' name='description'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/GridXZPrototype.x3d' name='identifier'/>
    <meta content='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../../license.html' name='license'/>
  </head>
  <Scene>
    <WorldInfo title='GridXZPrototype.x3d'/>
    <ProtoDeclare appinfo='Line grid authoring tool to enable precise measurement of objects in 3D space - fixed position. Oriented along XZ plane size 20m by 20m.' name='GridXZ'>
      <ProtoInterface>
        <field accessType='initializeOnly' appinfo='Purpose of this grid displayed for overall Viewpoint' name='description' type='SFString' value='GridXZ'/>
        <field accessType='inputOutput' appinfo='color for descriptive labels at grid edges and corners' name='labelColor' type='SFColor' value='1 1 1'/>
        <field accessType='inputOutput' appinfo='default unscaled size: 10m by 10m' name='scale' type='SFVec3f' value='1 1 1'/>
        <field accessType='inputOutput' appinfo='label location offset (in meters) to improve readability' name='labelsOffset' type='SFVec3f' value='0 -0.5 0'/>
        <field accessType='inputOutput' name='originLabel' type='MFString' value='"origin" "0 0 0"'/>
        <field accessType='inputOutput' appinfo='-Z axis' name='NorthLabel' type='MFString' value='"North" "-Z"'/>
        <field accessType='inputOutput' name='NorthEastLabel' type='MFString' value='"10 0 -10"'/>
        <field accessType='inputOutput' appinfo='+X axis' name='EastLabel' type='MFString' value='"East" "+X"'/>
        <field accessType='inputOutput' name='SouthEastLabel' type='MFString' value='"10 0 10"'/>
        <field accessType='inputOutput' appinfo='+Z axis' name='SouthLabel' type='MFString' value='"South" "+Z"'/>
        <field accessType='inputOutput' name='SouthWestLabel' type='MFString' value='"-10 0 10"'/>
        <field accessType='inputOutput' appinfo='-X axis' name='WestLabel' type='MFString' value='"West" "-X"'/>
        <field accessType='inputOutput' name='NorthWestLabel' type='MFString' value='"-10 0 -10"'/>
      </ProtoInterface>
      <ProtoBody>
        <Transform DEF='GridLocation'>
          <IS>
            <connect nodeField='scale' protoField='scale'/>
          </IS>
          <Viewpoint orientation='1 0 0 -0.4' position='0 10 25'>
            <IS>
              <connect nodeField='description' protoField='description'/>
            </IS>
          </Viewpoint>
          <Group DEF='Liines'>
            <Shape DEF='LinesAlignedAlongZ'>
              <IndexedLineSet colorIndex='1 0 0 0 0 2 0 0 0 0 1 0 0 0 0 2 0 0 0 0 1' colorPerVertex='false' coordIndex='1 22 -1 2 23 -1 3 24 -1 4 25 -1 5 26 -1 6 27 -1 7 28 -1 8 29 -1 9 30 -1 10 31 -1 11 32 -1 12 33 -1 13 34 -1 14 35 -1 15 36 -1 16 37 -1 17 38 -1 18 39 -1 19 40 -1 20 41 -1 21 42 -1'>
                <Coordinate DEF='EndPoints' point='0 0 0 -10 0 10 -9 0 10 -8 0 10 -7 0 10 -6 0 10 -5 0 10 -4 0 10 -3 0 10 -2 0 10 -1 0 10 0 0 10 1 0 10 2 0 10 3 0 10 4 0 10 5 0 10 6 0 10 7 0 10 8 0 10 9 0 10 10 0 10 -10 0 -10 -9 0 -10 -8 0 -10 -7 0 -10 -6 0 -10 -5 0 -10 -4 0 -10 -3 0 -10 -2 0 -10 -1 0 -10 0 0 -10 1 0 -10 2 0 -10 3 0 -10 4 0 -10 5 0 -10 6 0 -10 7 0 -10 8 0 -10 9 0 -10 10 0 -10'/>
                <Color color='0.4 0.4 0.4 0.8 0.2 0 0.4 0.1 0.05'/>
              </IndexedLineSet>
            </Shape>
            <Transform DEF='LinesAlignedAlongX' rotation='0 1 0 1.57079'>
              <Shape USE='LinesAlignedAlongZ'/>
            </Transform>
          </Group>
          <Transform DEF='LabelsOffset'>
            <IS>
              <connect nodeField='translation' protoField='labelsOffset'/>
            </IS>
            <Transform DEF='Origin' translation='0 -0.5 0'>
              <Billboard>
                <Shape>
                  <Appearance DEF='LabelAppearance'>
                    <Material>
                      <IS>
                        <connect nodeField='diffuseColor' protoField='labelColor'/>
                      </IS>
                    </Material>
                  </Appearance>
                  <Text DEF='OriginText'>
                    <IS>
                      <connect nodeField='string' protoField='originLabel'/>
                    </IS>
                    <FontStyle DEF='LabelFont' family='"TYPEWRITER"' justify='"MIDDLE" "MIDDLE"' size='0.4'/>
                  </Text>
                </Shape>
              </Billboard>
            </Transform>
            <Transform DEF='North' translation='0 -0.5 -10'>
              <Billboard>
                <Shape>
                  <Appearance USE='LabelAppearance'/>
                  <Text DEF='NorthText'>
                    <IS>
                      <connect nodeField='string' protoField='NorthLabel'/>
                    </IS>
                    <FontStyle USE='LabelFont'/>
                  </Text>
                </Shape>
              </Billboard>
            </Transform>
            <Transform DEF='NorthEast' translation='10 -0.5 -10'>
              <Billboard>
                <Shape>
                  <Appearance USE='LabelAppearance'/>
                  <Text DEF='NorthEastText'>
                    <IS>
                      <connect nodeField='string' protoField='NorthEastLabel'/>
                    </IS>
                    <FontStyle USE='LabelFont'/>
                  </Text>
                </Shape>
              </Billboard>
            </Transform>
            <Transform DEF='East' translation='10 -0.5 0'>
              <Billboard>
                <Shape>
                  <Appearance USE='LabelAppearance'/>
                  <Text DEF='EastText'>
                    <IS>
                      <connect nodeField='string' protoField='EastLabel'/>
                    </IS>
                    <FontStyle USE='LabelFont'/>
                  </Text>
                </Shape>
              </Billboard>
            </Transform>
            <Transform DEF='SouthEast' translation='10 -0.5 10'>
              <Billboard>
                <Shape>
                  <Appearance USE='LabelAppearance'/>
                  <Text DEF='SouthEastText'>
                    <IS>
                      <connect nodeField='string' protoField='SouthEastLabel'/>
                    </IS>
                    <FontStyle USE='LabelFont'/>
                  </Text>
                </Shape>
              </Billboard>
            </Transform>
            <Transform DEF='South' translation='0 -0.5 10'>
              <Billboard>
                <Shape>
                  <Appearance USE='LabelAppearance'/>
                  <Text DEF='SouthText'>
                    <IS>
                      <connect nodeField='string' protoField='SouthLabel'/>
                    </IS>
                    <FontStyle USE='LabelFont'/>
                  </Text>
                </Shape>
              </Billboard>
            </Transform>
            <Transform DEF='SouthWest' translation='-10 -0.5 10'>
              <Billboard>
                <Shape>
                  <Appearance USE='LabelAppearance'/>
                  <Text DEF='SouthWestText'>
                    <IS>
                      <connect nodeField='string' protoField='SouthWestLabel'/>
                    </IS>
                    <FontStyle USE='LabelFont'/>
                  </Text>
                </Shape>
              </Billboard>
            </Transform>
            <Transform DEF='West' translation='-10 -0.5 0'>
              <Billboard>
                <Shape>
                  <Appearance USE='LabelAppearance'/>
                  <Text DEF='WestText'>
                    <IS>
                      <connect nodeField='string' protoField='WestLabel'/>
                    </IS>
                    <FontStyle USE='LabelFont'/>
                  </Text>
                </Shape>
              </Billboard>
            </Transform>
            <Transform DEF='NorthWest' translation='-10 -0.5 -10'>
              <Billboard>
                <Shape>
                  <Appearance USE='LabelAppearance'/>
                  <Text DEF='NorthWestText'>
                    <IS>
                      <connect nodeField='string' protoField='NorthWestLabel'/>
                    </IS>
                    <FontStyle USE='LabelFont'/>
                  </Text>
                </Shape>
              </Billboard>
            </Transform>
          </Transform>
        </Transform>
      </ProtoBody>
    </ProtoDeclare>
    <Anchor description='GridXZ Example' url='"GridXZExample.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/GridXZExample.x3d" "GridXZExample.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/GridXZExample.wrl"'>
      <Shape>
        <Appearance>
          <Material diffuseColor='0 1 1' emissiveColor='0 1 1'/>
        </Appearance>
        <Text string='"GridXZPrototype" "is a Prototype definition file." "" "To see an example scene" "click this text and view" "GridXZExample."'>
          <FontStyle justify='"MIDDLE" "MIDDLE"'/>
        </Text>
      </Shape>
    </Anchor>
  </Scene>
</X3D>