{ "X3D": {
    "encoding":"UTF-8",
    "@profile":"Immersive",
    "@version":"3.0",
    "@xsd:noNamespaceSchemaLocation":"https://www.web3d.org/specifications/x3d-3.0.xsd",
    "JSON schema":"https://www.web3d.org/specifications/x3d-4.0-JSONSchema.autogenerated.json",
    "head": {
        "meta": [
          {
            "@name":"title",
            "@content":"ViewpointGroupExample.x3d"
          },
          {
            "@name":"description",
            "@content":"Example to test ViewpointGroup, which contains Viewpoint and ViewpointGroup nodes, allowing nested lists and viewpoint scoping in viewpoint lists."
          },
          {
            "@name":"creator",
            "@content":"Don Brutzman"
          },
          {
            "@name":"created",
            "@content":"4 November 2003"
          },
          {
            "@name":"modified",
            "@content":"20 October 2019"
          },
          {
            "@name":"reference",
            "@content":"ViewpointListViewpointGroupProse.html"
          },
          {
            "@name":"reference",
            "@content":"ViewpointGroupPrototype.x3d"
          },
          {
            "@name":"reference",
            "@content":"https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/navigation.html#Viewpoint"
          },
          {
            "@name":"reference",
            "@content":"https://www.web3d.org/technicalinfo/specifications/vrml97/part1/nodesRef.html#Viewpoint"
          },
          {
            "@name":"subject",
            "@content":"ViewpointGroup Viewpoint"
          },
          {
            "@name":"identifier",
            "@content":"https://www.web3d.org/x3d/content/examples/Basic/development/ViewpointGroupExample.x3d"
          },
          {
            "@name":"generator",
            "@content":"X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit"
          },
          {
            "@name":"license",
            "@content":"../license.html"
          },
          {
            "@name":"translated",
            "@content":"20 April 2026"
          },
          {
            "@name":"generator",
            "@content":"X3dToJson.xslt, https://www.web3d.org/x3d/stylesheets/X3dToJson.html"
          },
          {
            "@name":"reference",
            "@content":"X3D JSON encoding: https://www.web3d.org/wiki/index.php/X3D_JSON_Encoding"
          }
        ]
    },
    "Scene": {
        "-children":[
          { "WorldInfo":
            {
              "@title":"ViewpointGroupExample.x3d"
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"ViewpointGroup",
              "@url":["ViewpointGroupPrototype.x3d#ViewpointGroup","https://www.web3d.org/x3d/content/examples/Basic/development/ViewpointGroupPrototype.x3d#ViewpointGroup","ViewpointGroupPrototype.wrl#ViewpointGroup","https://www.web3d.org/x3d/content/examples/Basic/development/ViewpointGroupPrototype.wrl#ViewpointGroup"],
              "field": [
                {
                  "@name":"children",
                  "@accessType":"inputOutput",
                  "@appinfo":"[Viewpoint | ViewpointGroup] only",
                  "@type":"MFNode"
                },
                {
                  "@name":"description",
                  "@accessType":"inputOutput",
                  "@appinfo":"Text description or navigation hint to be displayed for this ViewpointGroup.",
                  "@type":"SFString"
                },
                {
                  "@name":"displayed",
                  "@accessType":"inputOutput",
                  "@appinfo":"Whether this ViewpointGroup is displayed in current viewpoint list.",
                  "@type":"SFBool"
                },
                {
                  "@name":"center",
                  "@accessType":"inputOutput",
                  "@appinfo":"Position offset from origin of local coordinate system.",
                  "@type":"SFVec3f"
                },
                {
                  "@name":"radius",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[0..infinity) Radius in meters of Proximity box within which the ViewpointGroup is usable and displayed on the viewpoint list.",
                  "@type":"SFFloat"
                },
                {
                  "@name":"set_radius",
                  "@accessType":"inputOnly",
                  "@appinfo":"[0..infinity) Radius in meters of Proximity box within which the ViewpointGroup is usable and displayed on the viewpoint list.",
                  "@type":"SFFloat"
                },
                {
                  "@name":"retainUserOffsets",
                  "@accessType":"inputOutput",
                  "@appinfo":"Whether viewpoint needs to retain (true) or rezero (false) any prior user navigation offsets from defined viewpoint position orientation.",
                  "@type":"SFBool"
                }
              ]
            }
          },
          { "Viewpoint":
            {
              "@description":"inside scope: ViewpointGroup",
              "@position":[0,0,5]
            }
          },
          { "Viewpoint":
            {
              "@description":"outside scope: ViewpointGroup",
              "@position":[0,0,12]
            }
          },
          { "ProtoInstance":
            {
              "@name":"ViewpointGroup",
              "fieldValue": [
                {
                  "@name":"description",
                  "@value":"first ViewpointGroup"
                },
                {
                  "@name":"radius",
                  "@value":8
                },
                {
                  "@name":"children",
                  "-children":[
                    { "Viewpoint":
                      {
                        "@description":"level 1, viewpoint 1",
                        "@position":[0,0,6]
                      }
                    },
                    { "Viewpoint":
                      {
                        "@description":"level 1, viewpoint 2",
                        "@position":[0,0,5]
                      }
                    },
                    { "ProtoInstance":
                      {
                        "@name":"ViewpointGroup",
                        "fieldValue": [
                          {
                            "@name":"description",
                            "@value":"second ViewpointGroup"
                          },
                          {
                            "@name":"radius",
                            "@value":8
                          },
                          {
                            "@name":"children",
                            "-children":[
                              { "Viewpoint":
                                {
                                  "@description":"level 2, viewpoint 1",
                                  "@position":[0,0,5]
                                }
                              },
                              { "Viewpoint":
                                {
                                  "@description":"level 2, viewpoint 2",
                                  "@position":[0,0,6]
                                }
                              }
                            ]
                          }
                        ]
                      }
                    },
                    { "Viewpoint":
                      {
                        "@description":"level 1, viewpoint 3",
                        "@position":[0,0,5]
                      }
                    }
                  ]
                }
              ]
            }
          },
          { "Transform":
            {
              "-children":[
                { "Shape":
                  {
                    "-geometry":
                      { "Text":
                        {
                          "@string":["Select viewpoints","in viewpoint list","to test ViewpointGroup"],
                          "-fontStyle":
                            { "FontStyle":
                              {
                                "@family":["SANS"],
                                "@justify":["MIDDLE","MIDDLE"],
                                "@size":0.8
                              }
                            }
                        }
                      },
                    "-appearance":
                      { "Appearance":
                        {
                          "-material":
                            { "Material":
                              {
                                "@diffuseColor":[0.8,0.4,0.2]
                              }
                            }
                        }
                      }
                  }
                }
              ]
            }
          }
        ]
    }
  }
}