Box : X3DGeometryNode {
  SFVec3f []       size     2 2 2
    range: (0,Inf)
    change: chGeometry
  SFBool  []       solid    TRUE
    change: chGeometry
  # CASTLE GAME ENGINE EXTENSIONS:
  SFBool     []            ccw         TRUE
    change: chGeometry
  SFNode     [in,out]      texCoord    NULL
    range: TextureCoordinateGenerator, ProjectedTextureCoordinate, MultiGeneratedTextureCoordinate
    change: chGeometry
    setter-before: MoveShapeAssociations
}

Cone : X3DGeometryNode {
  SFBool  []       bottom       TRUE
    change: chGeometry
  SFFloat []       bottomRadius 1
    range: (0,Inf)
    change: chGeometry
  SFFloat []       height       2
    range: (0,Inf)
    change: chGeometry
  SFBool  []       side         TRUE
    change: chGeometry
  SFBool  []       solid        TRUE
    change: chGeometry
  # CASTLE GAME ENGINE EXTENSIONS:
  SFNode     [in,out]      texCoord    NULL
    range: TextureCoordinateGenerator, ProjectedTextureCoordinate, MultiGeneratedTextureCoordinate
    change: chGeometry
    setter-before: MoveShapeAssociations
  SFInt32    [in,out]      slices      0
    range: {0} + [3, infinity)
    change: chGeometry
    doc: How many "slices" to use to approximate the cone. The cone is rendered using polygons (triangles and quads) that approximate the cone shape. The more slices, the more the cone will look like a cone. Slices divide the objects like slices of a pizza. The default value of 0 means to follow global variable @link(DefaultTriangulationSlices).
  SFInt32    [in,out]      stacks      0
    range: {0} + [2, infinity)
    change: chGeometry
    doc: How many "stacks" to use to approximate the cone. The cone is rendered using polygons (triangles and quads) that approximate the cone shape. The more stacks, the more the cone will look like a cone. Stacks divide the objects like stacks of a tower. The default value of 0 means to follow global variable @link(DefaultTriangulationStacks).
}

Cylinder : X3DGeometryNode {
  SFBool  []       bottom   TRUE
    change: chGeometry
  SFFloat []       height   2
    range: (0,Inf)
    change: chGeometry
  SFFloat []       radius   1
    range: (0,Inf)
    change: chGeometry
  SFBool  []       side     TRUE
    change: chGeometry
  SFBool  []       solid    TRUE
    change: chGeometry
  SFBool  []       top      TRUE
    change: chGeometry
  # CASTLE GAME ENGINE EXTENSIONS:
  SFNode     [in,out]      texCoord    NULL
    range: TextureCoordinateGenerator, ProjectedTextureCoordinate, MultiGeneratedTextureCoordinate
    change: chGeometry
    setter-before: MoveShapeAssociations
  SFInt32    [in,out]      slices      0
    range: {0} + [3, infinity)
    change: chGeometry
    doc: How many "slices" to use to approximate the cylinder. The cylinder is rendered using polygons (triangles and quads) that approximate the cylinder shape. The more slices, the more the cylinder will look like a cylinder. Slices divide the objects like slices of a pizza. The default value of 0 means to follow global variable @link(DefaultTriangulationSlices).
  # Cylinder.stacks removed: pointless for Phong shading.
  # SFInt32    [in,out]      stacks      0
  #   range: {0} + [2, infinity)
  #   change: chGeometry
  #   doc: How many "stacks" to use to approximate the cylinder. The cylinder is rendered using polygons (triangles and quads) that approximate the cylinder shape. The more stacks, the more the cylinder will look like a cylinder. Stacks divide the objects like stacks of a tower. The default value of 0 means to follow global variable @link(DefaultTriangulationStacks).
}

ElevationGrid : X3DGeometryNode {
  MFFloat [in]     set_height
    change: chGeometry
  MFNode  [in,out] attrib          []
    range: X3DVertexAttributeNode
    change: chGeometry
  SFNode  [in,out] color           NULL
    range: X3DColorNode
    change: chGeometry
  SFNode  [in,out] fogCoord        NULL
    range: FogCoordinate
    change: chGeometry
  SFNode  [in,out] normal          NULL
    range: X3DNormalNode
    change: chGeometry
  SFNode  [in,out] texCoord        NULL
    range: X3DTextureCoordinateNode
    change: chGeometry
    setter-before: MoveShapeAssociations
  SFBool  []       ccw             TRUE
    change: chGeometry
  SFBool  []       colorPerVertex  TRUE
    change: chGeometry
  SFFloat []       creaseAngle     0
    range: [0,Inf)
    change: chGeometry
    angle
  MFFloat []       height          []
    range: (-Inf,Inf)
    change: chGeometry
  SFBool  []       normalPerVertex TRUE
    change: chGeometry
  SFBool  []       solid           TRUE
    change: chGeometry
  SFInt32 []       xDimension      0
    range: [0,Inf)
    change: chGeometry
  SFFloat []       xSpacing        1.0
    range: (0,Inf)
    change: chGeometry
  SFInt32 []       zDimension      0
    range: [0,Inf)
    change: chGeometry
  SFFloat []       zSpacing        1.0
    range: (0,Inf)
    change: chGeometry
}

Extrusion : X3DGeometryNode {
  MFVec2f    [in]     set_crossSection
    change: chGeometry
  MFRotation [in]     set_orientation
    change: chGeometry
  MFVec2f    [in]     set_scale
    change: chGeometry
  MFVec3f    [in]     set_spine
    change: chGeometry
  SFBool     []       beginCap         TRUE
    change: chGeometry
  SFBool     []       ccw              TRUE
    change: chGeometry
  SFBool     []       convex           TRUE
    change: chGeometry
  SFFloat    []       creaseAngle      0
    range: [0,Inf)
    change: chGeometry
    angle
  MFVec2f    []       crossSection     [ Vector2(1, 1), Vector2(1, -1), Vector2(-1, -1), Vector2(-1, 1), Vector2(1, 1) ]
    range: (-Inf,Inf)
    change: chGeometry
  SFBool     []       endCap           TRUE
    change: chGeometry
  MFRotation []       orientation      [ Vector4(0, 0, 1, 0) ]
    range: [-1,1] or (-Inf,Inf)
    change: chGeometry
  MFVec2f    []       scale            [ Vector2(1, 1) ]
    range: (0,Inf)
    change: chGeometry
  SFBool     []       solid            TRUE
    change: chGeometry
  MFVec3f    []       spine            [ Vector3(0, 0, 0), Vector3(0, 1, 0) ]
    range: (-Inf,Inf)
    change: chGeometry

  # CASTLE GAME ENGINE EXTENSIONS:
  SFNode     [in,out]      texCoord    NULL
    range: TextureCoordinateGenerator, ProjectedTextureCoordinate, MultiGeneratedTextureCoordinate
    change: chGeometry
    setter-before: MoveShapeAssociations
}

IndexedFaceSet : X3DComposedGeometryNode {
  MFInt32 [in]     set_colorIndex
    not-slim
    change: chGeometry
  MFInt32 [in]     set_coordIndex
    not-slim
    change: chGeometry
  MFInt32 [in]     set_normalIndex
    not-slim
    change: chGeometry
  MFInt32 [in]     set_texCoordIndex
    not-slim
    change: chGeometry
  MFInt32 []       colorIndex        []
    range: [0,Inf) or -1
    change: chGeometry
  SFBool  []       convex            TRUE
    change: chGeometry
  MFInt32 []       coordIndex        []
    range: [0,Inf) or -1
    change: chGeometry
  SFFloat []       creaseAngle       0
    range: [0,Inf)
    change: chGeometry
    angle
  MFInt32 []       normalIndex       []
    range: [0,Inf) or -1
    change: chGeometry
  MFInt32 []       texCoordIndex     []
    range: [-1,Inf)
    change: chGeometry
}

Sphere : X3DGeometryNode {
  SFFloat []       radius   1
    range: (0,Inf)
    change: chGeometry
  SFBool  []       solid    TRUE
    change: chGeometry
  # CASTLE GAME ENGINE EXTENSIONS:
  SFNode     [in,out]      texCoord    NULL
    range: TextureCoordinateGenerator, ProjectedTextureCoordinate, MultiGeneratedTextureCoordinate
    change: chGeometry
    setter-before: MoveShapeAssociations
  SFInt32    [in,out]      slices      0
    range: {0} + [3, infinity)
    change: chGeometry
    doc: How many "slices" to use to approximate the sphere. The sphere is rendered using polygons (triangles and quads) that approximate the sphere shape. The more slices, the more the sphere will look like a sphere. Slices divide the objects like slices of a pizza. The default value of 0 means to follow global variable @link(DefaultTriangulationSlices).
  SFInt32    [in,out]      stacks      0
    range: {0} + [2, infinity)
    change: chGeometry
    doc: How many "stacks" to use to approximate the sphere. The sphere is rendered using polygons (triangles and quads) that approximate the sphere shape. The more stacks, the more the sphere will look like a sphere. Stacks divide the objects like stacks of a tower. The default value of 0 means to follow global variable @link(DefaultTriangulationStacks).
}
