{ "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":"NurbsExternPrototypes.x3d"
          },
          {
            "@name":"description",
            "@content":"Non-Uniform Rational B-Spline (NURBS) external prototype definitions, used for building VRML 97 signatures for inclusion in X3dToVrml97 conversion stylesheet."
          },
          {
            "@name":"creator",
            "@content":"Don Brutzman"
          },
          {
            "@name":"revisor",
            "@content":"Alan Shaffer"
          },
          {
            "@name":"created",
            "@content":"28 February 2003"
          },
          {
            "@name":"modified",
            "@content":"20 October 2019"
          },
          {
            "@name":"warning",
            "@content":"under development, needs to be upgraded to final version of X3D NURBS nodes"
          },
          {
            "@name":"info",
            "@content":".wrl url links intentionally precede .x3d links, X3D-Edit stylesheet X3dToVrml97.xslt automatically inserts VRML97 translations of these external prototype declarations upon encountering any DIS nodes."
          },
          {
            "@name":"reference",
            "@content":"NurbsPrototypes.x3d"
          },
          {
            "@name":"reference",
            "@content":"https://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/nurbs.html"
          },
          {
            "@name":"subject",
            "@content":"NURBS Prototypes"
          },
          {
            "@name":"identifier",
            "@content":"https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsExternPrototypes.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":"NurbsExternPrototypes.x3d"
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"Contour2D",
              "@appinfo":"Contour2D node groups a set of curve segments (either NurbsCurve2D or ContourPolyline2D nodes) to a composite contour in consecutive order according to the topology of the contour. The children shall form a closed loop with the first point of the first child repeated as the last point of the last child and the last point of a segment repeated as the first point of the consecutive one.",
              "@documentation":"https://www.web3d.org/technicalinfo/specifications/ISO_IEC_19775/Part01/components/nurbs.html#Contour2D",
              "@url":["NurbsPrototypes.x3d#Contour2D","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#Contour2D","NurbsPrototypes.wrl#Contour2D","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#Contour2D"],
              "field": [
                {
                  "@name":"addChildren",
                  "@accessType":"inputOnly",
                  "@appinfo":"[NurbsCurve|ContourPolyline2D]",
                  "@type":"MFNode"
                },
                {
                  "@name":"removeChildren",
                  "@accessType":"inputOnly",
                  "@appinfo":"[NurbsCurve|ContourPolyline2D]",
                  "@type":"MFNode"
                },
                {
                  "@name":"children",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[NurbsCurve|ContourPolyline2D] default []",
                  "@type":"MFNode"
                },
                {
                  "@name":"set_children",
                  "@accessType":"inputOnly",
                  "@type":"MFNode"
                },
                {
                  "@name":"children_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFNode"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"ContourPolyline2D",
              "@url":["NurbsPrototypes.x3d#ContourPolyline2D","../NURBS/NurbsPrototypes.x3d#ContourPolyline2D","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#ContourPolyline2D","NurbsPrototypes.wrl#ContourPolyline2D","../NURBS/NurbsPrototypes.wrl#ContourPolyline2D","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#ContourPolyline2D"],
              "field": [
                {
                  "@name":"point",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFVec2f"
                },
                {
                  "@name":"set_point",
                  "@accessType":"inputOnly",
                  "@type":"MFVec2f"
                },
                {
                  "@name":"point_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFVec2f"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"CoordinateDouble",
              "@url":["NurbsPrototypes.x3d#CoordinateDouble","../NURBS/NurbsPrototypes.x3d#CoordinateDouble","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#CoordinateDouble","NurbsPrototypes.wrl#CoordinateDouble","../NURBS/NurbsPrototypes.wrl#CoordinateDouble","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#CoordinateDouble"],
              "field": [
                {
                  "@name":"point",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFVec3f"
                },
                {
                  "@name":"set_point",
                  "@accessType":"inputOnly",
                  "@type":"MFVec3f"
                },
                {
                  "@name":"point_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFVec3f"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"NurbsCurve",
              "@url":["NurbsPrototypes.x3d#NurbsCurve","../NURBS/NurbsPrototypes.x3d#NurbsCurve","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#NurbsCurve","NurbsPrototypes.wrl#NurbsCurve","../NURBS/NurbsPrototypes.wrl#NurbsCurve","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#NurbsCurve"],
              "field": [
                {
                  "@name":"controlPoint",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[X3DCoordinateNode] default []",
                  "@type":"SFNode"
                },
                {
                  "@name":"tessellation",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"weight",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (0,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"closed",
                  "@accessType":"initializeOnly",
                  "@appinfo":"default false",
                  "@type":"SFBool"
                },
                {
                  "@name":"knot",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"order",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [2,∞) default 3",
                  "@type":"SFInt32"
                },
                {
                  "@name":"set_controlPoint",
                  "@accessType":"inputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"controlPoint_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"set_tessellation",
                  "@accessType":"inputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"tessellation_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"set_weight",
                  "@accessType":"inputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"weight_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"NurbsCurve2D",
              "@url":["NurbsPrototypes.x3d#NurbsCurve2D","../NURBS/NurbsPrototypes.x3d#NurbsCurve2D","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#NurbsCurve2D","NurbsPrototypes.wrl#NurbsCurve2D","../NURBS/NurbsPrototypes.wrl#NurbsCurve2D","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#NurbsCurve2D"],
              "field": [
                {
                  "@name":"controlPoint",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFVec2f"
                },
                {
                  "@name":"tessellation",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"weight",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (0,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"knot",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"order",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [2,∞) default 3",
                  "@type":"SFInt32"
                },
                {
                  "@name":"closed",
                  "@accessType":"initializeOnly",
                  "@appinfo":"default false",
                  "@type":"SFBool"
                },
                {
                  "@name":"set_controlPoint",
                  "@accessType":"inputOnly",
                  "@type":"MFVec2f"
                },
                {
                  "@name":"controlPoint_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFVec2f"
                },
                {
                  "@name":"set_tessellation",
                  "@accessType":"inputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"tessellation_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"set_weight",
                  "@accessType":"inputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"weight_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"NurbsOrientationInterpolator",
              "@url":["NurbsPrototypes.x3d#NurbsOrientationInterpolator","../NURBS/NurbsPrototypes.x3d#NurbsOrientationInterpolator","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#NurbsOrientationInterpolator","NurbsPrototypes.wrl#NurbsOrientationInterpolator","../NURBS/NurbsPrototypes.wrl#NurbsOrientationInterpolator","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#NurbsOrientationInterpolator"],
              "field": [
                {
                  "@name":"set_fraction",
                  "@accessType":"inputOnly",
                  "@appinfo":"range (-∞,∞)",
                  "@type":"SFFloat"
                },
                {
                  "@name":"controlPoint",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[X3DCoordinateNode] default []",
                  "@type":"SFNode"
                },
                {
                  "@name":"knot",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"order",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (2,∞) default 3",
                  "@type":"SFInt32"
                },
                {
                  "@name":"weight",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"value_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFRotation"
                },
                {
                  "@name":"set_controlPoint",
                  "@accessType":"inputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"controlPoint_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"set_knot",
                  "@accessType":"inputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"knot_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"set_order",
                  "@accessType":"inputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"order_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"set_weight",
                  "@accessType":"inputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"weight_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"NurbsPatchSurface",
              "@url":["NurbsPrototypes.x3d#NurbsPatchSurface","../NURBS/NurbsPrototypes.x3d#NurbsPatchSurface","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#NurbsPatchSurface","NurbsPrototypes.wrl#NurbsPatchSurface","../NURBS/NurbsPrototypes.wrl#NurbsPatchSurface","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#NurbsPatchSurface"],
              "field": [
                {
                  "@name":"controlPoint",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[X3DCoordinateNode] default []",
                  "@type":"SFNode"
                },
                {
                  "@name":"texCoord",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[X3DTextureCoordinateNode|NurbsTextureCoordinate] default []",
                  "@type":"SFNode"
                },
                {
                  "@name":"uTessellation",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"vTessellation",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"weight",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (0,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"solid",
                  "@accessType":"initializeOnly",
                  "@appinfo":"default true",
                  "@type":"SFBool"
                },
                {
                  "@name":"uClosed",
                  "@accessType":"initializeOnly",
                  "@appinfo":"default false",
                  "@type":"SFBool"
                },
                {
                  "@name":"uDimension",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [0,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"uKnot",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"uOrder",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [2,∞) default 3",
                  "@type":"SFInt32"
                },
                {
                  "@name":"vClosed",
                  "@accessType":"initializeOnly",
                  "@appinfo":"default false",
                  "@type":"SFBool"
                },
                {
                  "@name":"vDimension",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [0,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"vKnot",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"vOrder",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [2,∞) default 3",
                  "@type":"SFInt32"
                },
                {
                  "@name":"set_controlPoint",
                  "@accessType":"inputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"controlPoint_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"set_texCoord",
                  "@accessType":"inputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"texCoord_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"set_uTessellation",
                  "@accessType":"inputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"uTessellation_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"set_vTessellation",
                  "@accessType":"inputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"vTessellation_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"set_weight",
                  "@accessType":"inputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"weight_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"NurbsPositionInterpolator",
              "@url":["NurbsPrototypes.x3d#NurbsPositionInterpolator","../NURBS/NurbsPrototypes.x3d#NurbsPositionInterpolator","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#NurbsPositionInterpolator","NurbsPrototypes.wrl#NurbsPositionInterpolator","../NURBS/NurbsPrototypes.wrl#NurbsPositionInterpolator","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#NurbsPositionInterpolator"],
              "field": [
                {
                  "@name":"set_fraction",
                  "@accessType":"inputOnly",
                  "@appinfo":"range (-∞,∞)",
                  "@type":"SFFloat"
                },
                {
                  "@name":"controlPoint",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[X3DCoordinateNode] default []",
                  "@type":"SFNode"
                },
                {
                  "@name":"knot",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"order",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (2,∞) default 3",
                  "@type":"SFInt32"
                },
                {
                  "@name":"weight",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"value_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFVec3f"
                },
                {
                  "@name":"set_controlPoint",
                  "@accessType":"inputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"controlPoint_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"set_knot",
                  "@accessType":"inputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"knot_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"set_order",
                  "@accessType":"inputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"order_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"set_weight",
                  "@accessType":"inputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"weight_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"NurbsSet",
              "@url":["NurbsPrototypes.x3d#NurbsSet","../NURBS/NurbsPrototypes.x3d#NurbsSet","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#NurbsSet","NurbsPrototypes.wrl#NurbsSet","../NURBS/NurbsPrototypes.wrl#NurbsSet","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#NurbsSet"],
              "field": [
                {
                  "@name":"addGeometry",
                  "@accessType":"inputOnly",
                  "@appinfo":"[NurbsPatchSurface]",
                  "@type":"MFNode"
                },
                {
                  "@name":"removeGeometry",
                  "@accessType":"inputOnly",
                  "@appinfo":"[NurbsPatchSurface]",
                  "@type":"MFNode"
                },
                {
                  "@name":"geometry",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[NurbsPatchSurface] default []",
                  "@type":"MFNode"
                },
                {
                  "@name":"tessellationScale",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (0,∞) default 1.0",
                  "@type":"SFFloat"
                },
                {
                  "@name":"bboxCenter",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default [0 0 0]",
                  "@type":"SFVec3f"
                },
                {
                  "@name":"bboxSize",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [0,∞); [-1 -1 -1] default [-1 -1 -1]",
                  "@type":"SFVec3f"
                },
                {
                  "@name":"set_geometry",
                  "@accessType":"inputOnly",
                  "@type":"MFNode"
                },
                {
                  "@name":"geometry_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFNode"
                },
                {
                  "@name":"set_tessellationScale",
                  "@accessType":"inputOnly",
                  "@type":"SFFloat"
                },
                {
                  "@name":"tessellationScale_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFFloat"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"NurbsSurfaceInterpolator",
              "@url":["NurbsPrototypes.x3d#NurbsSurfaceInterpolator","../NURBS/NurbsPrototypes.x3d#NurbsSurfaceInterpolator","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#NurbsSurfaceInterpolator","NurbsPrototypes.wrl#NurbsSurfaceInterpolator","../NURBS/NurbsPrototypes.wrl#NurbsSurfaceInterpolator","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#NurbsSurfaceInterpolator"],
              "field": [
                {
                  "@name":"set_fraction",
                  "@accessType":"inputOnly",
                  "@appinfo":"range (-∞,∞)",
                  "@type":"SFVec2f"
                },
                {
                  "@name":"controlPoint",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[X3DCoordinateNode] default []",
                  "@type":"SFNode"
                },
                {
                  "@name":"weight",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"position_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFVec3f"
                },
                {
                  "@name":"normal_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFVec3f"
                },
                {
                  "@name":"uDimension",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [0,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"uKnot",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"uOrder",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [2,∞) default 3",
                  "@type":"SFInt32"
                },
                {
                  "@name":"vDimension",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [0,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"vKnot",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"vOrder",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [2∞) default 3",
                  "@type":"SFInt32"
                },
                {
                  "@name":"set_controlPoint",
                  "@accessType":"inputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"controlPoint_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"set_weight",
                  "@accessType":"inputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"weight_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"NurbsSweptSurface",
              "@url":["NurbsPrototypes.x3d#NurbsSweptSurface","../NURBS/NurbsPrototypes.x3d#NurbsSweptSurface","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#NurbsSweptSurface","NurbsPrototypes.wrl#NurbsSweptSurface","../NURBS/NurbsPrototypes.wrl#NurbsSweptSurface","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#NurbsSweptSurface"],
              "field": [
                {
                  "@name":"crossSectionCurve",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[X3DNurbsControlCurveNode] default []",
                  "@type":"SFNode"
                },
                {
                  "@name":"trajectoryCurve",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[NurbsCurve] default []",
                  "@type":"SFNode"
                },
                {
                  "@name":"ccw",
                  "@accessType":"initializeOnly",
                  "@appinfo":"default true",
                  "@type":"SFBool"
                },
                {
                  "@name":"solid",
                  "@accessType":"initializeOnly",
                  "@appinfo":"default true",
                  "@type":"SFBool"
                },
                {
                  "@name":"set_crossSectionCurve",
                  "@accessType":"inputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"crossSectionCurve_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"set_trajectoryCurve",
                  "@accessType":"inputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"trajectoryCurve_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"NurbsSwungSurface",
              "@url":["NurbsPrototypes.x3d#NurbsSwungSurface","../NURBS/NurbsPrototypes.x3d#NurbsSwungSurface","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#NurbsSwungSurface","NurbsPrototypes.wrl#NurbsSwungSurface","../NURBS/NurbsPrototypes.wrl#NurbsSwungSurface","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#NurbsSwungSurface"],
              "field": [
                {
                  "@name":"profileCurve",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[X3DNurbsControlCurveNode] default []",
                  "@type":"SFNode"
                },
                {
                  "@name":"trajectoryCurve",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[X3DNurbsControlCurveNode] default []",
                  "@type":"SFNode"
                },
                {
                  "@name":"ccw",
                  "@accessType":"initializeOnly",
                  "@appinfo":"default true",
                  "@type":"SFBool"
                },
                {
                  "@name":"solid",
                  "@accessType":"initializeOnly",
                  "@appinfo":"default true",
                  "@type":"SFBool"
                },
                {
                  "@name":"set_profileCurve",
                  "@accessType":"inputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"profileCurve_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"set_trajectoryCurve",
                  "@accessType":"inputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"trajectoryCurve_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"NurbsTextureCoordinate",
              "@url":["NurbsPrototypes.x3d#NurbsTextureCoordinate","../NURBS/NurbsPrototypes.x3d#NurbsTextureSurface","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#NurbsTextureCoordinate","NurbsPrototypes.wrl#NurbsTextureCoordinate","../NURBS/NurbsPrototypes.wrl#NurbsTextureCoordinate","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#NurbsTextureCoordinate"],
              "field": [
                {
                  "@name":"controlPoint",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFVec2f"
                },
                {
                  "@name":"weight",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (0,∞) default []",
                  "@type":"MFFloat"
                },
                {
                  "@name":"uDimension",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [0,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"uKnot",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"uOrder",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [2∞) default 3",
                  "@type":"SFInt32"
                },
                {
                  "@name":"vDimension",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [0,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"vKnot",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"vOrder",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [2,∞) default 3",
                  "@type":"SFInt32"
                },
                {
                  "@name":"set_controlPoint",
                  "@accessType":"inputOnly",
                  "@type":"MFVec2f"
                },
                {
                  "@name":"controlPoint_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFVec2f"
                },
                {
                  "@name":"set_weight",
                  "@accessType":"inputOnly",
                  "@type":"MFFloat"
                },
                {
                  "@name":"weight_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFFloat"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "ExternProtoDeclare":
            {
              "@name":"NurbsTrimmedSurface",
              "@url":["NurbsPrototypes.x3d#NurbsTrimmedSurface","../NURBS/NurbsPrototypes.x3d#NurbsTrimmedSurface","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.x3d#NurbsTrimmedSurface","NurbsPrototypes.wrl#NurbsTrimmedSurface","../NURBS/NurbsPrototypes.wrl#NurbsTrimmedSurface","https://www.web3d.org/x3d/content/examples/Basic/NURBS/NurbsPrototypes.wrl#NurbsTrimmedSurface"],
              "-children":[
                {
                  "#comment":"No attributes, node-type children and events only."
                }
              ],
              "field": [
                {
                  "@name":"addTrimmingContour",
                  "@accessType":"inputOnly",
                  "@appinfo":"[Contour2D]",
                  "@type":"MFNode"
                },
                {
                  "@name":"removeTrimmingContour",
                  "@accessType":"inputOnly",
                  "@appinfo":"[Contour2D]",
                  "@type":"MFNode"
                },
                {
                  "@name":"controlPoint",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[X3DCoordinateNode] default []",
                  "@type":"SFNode"
                },
                {
                  "@name":"texCoord",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[X3DTextureCoordinateNode|NurbsTextureCoordinate] default []",
                  "@type":"SFNode"
                },
                {
                  "@name":"trimmingContour",
                  "@accessType":"initializeOnly",
                  "@appinfo":"[Contour2D] default []",
                  "@type":"MFNode"
                },
                {
                  "@name":"uTessellation",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"vTessellation",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"weight",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (0,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"solid",
                  "@accessType":"initializeOnly",
                  "@appinfo":"default true",
                  "@type":"SFBool"
                },
                {
                  "@name":"uClosed",
                  "@accessType":"initializeOnly",
                  "@appinfo":"default false",
                  "@type":"SFBool"
                },
                {
                  "@name":"uDimension",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [0,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"uKnot",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"uOrder",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [2,∞) default 3",
                  "@type":"SFInt32"
                },
                {
                  "@name":"vClosed",
                  "@accessType":"initializeOnly",
                  "@appinfo":"default false",
                  "@type":"SFBool"
                },
                {
                  "@name":"vDimension",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [0,∞) default 0",
                  "@type":"SFInt32"
                },
                {
                  "@name":"vKnot",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range (-∞,∞) default []",
                  "@type":"MFDouble"
                },
                {
                  "@name":"vOrder",
                  "@accessType":"initializeOnly",
                  "@appinfo":"range [2,∞) default 3",
                  "@type":"SFInt32"
                },
                {
                  "@name":"set_controlPoint",
                  "@accessType":"inputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"controlPoint_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"set_texCoord",
                  "@accessType":"inputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"texCoord_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFNode"
                },
                {
                  "@name":"set_trimmingContour",
                  "@accessType":"inputOnly",
                  "@type":"MFNode"
                },
                {
                  "@name":"trimmingContour_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFNode"
                },
                {
                  "@name":"set_uTessellation",
                  "@accessType":"inputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"uTessellation_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"set_vTessellation",
                  "@accessType":"inputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"vTessellation_changed",
                  "@accessType":"outputOnly",
                  "@type":"SFInt32"
                },
                {
                  "@name":"set_weight",
                  "@accessType":"inputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"weight_changed",
                  "@accessType":"outputOnly",
                  "@type":"MFDouble"
                },
                {
                  "@name":"metadata",
                  "@accessType":"inputOutput",
                  "@appinfo":"Metadata node only",
                  "@type":"SFNode"
                }
              ]
            }
          },
          { "Shape":
            {
              "-appearance":
                { "Appearance":
                  {
                    "-material":
                      { "Material":
                        {
                          "@diffuseColor":[0.8,0.6,0.2]
                        }
                      }
                  }
                },
              "-geometry":
                { "Text":
                  {
                    "@string":["NurbsExternPrototypes is a","developmental file for producing","EXTERNPROTO signatures","in VRML 97 syntax."],
                    "-fontStyle":
                      { "FontStyle":
                        {
                          "@justify":["MIDDLE","MIDDLE"],
                          "@size":0.7
                        }
                      }
                  }
                }
            }
          }
        ]
    }
  }
}