X3DColorNode : X3DGeometricPropertyNode { 
}

X3DComposedGeometryNode : X3DGeometryNode { 
  MFNode [in,out] attrib          []   [X3DVertexAttributeNode]
  SFNode [in,out] color           NULL [X3DColorNode]
  SFNode [in,out] coord           NULL [X3DCoordinateNode]
  SFNode [in,out] fogCoord        []   [FogCoordinate]
  SFNode [in,out] normal          NULL [X3DNormalNode]
  SFNode [in,out] texCoord        NULL [X3DTextureCoordinateNode]
  SFBool []       ccw             TRUE
  SFBool []       colorPerVertex  TRUE
  SFBool []       normalPerVertex TRUE
  SFBool []       solid           TRUE
}

X3DCoordinateNode : X3DGeometricPropertyNode {
}

X3DGeometricPropertyNode : X3DNode { 
}

X3DGeometryNode : X3DNode { 
}

X3DNormalNode : X3DGeometricPropertyNode { 
}

ClipPlane : X3DChildNode { 
  SFBool  [in,out] enabled  TRUE
  SFVec4f [in,out] plane    0 1 0 0 [0,1]
}

Color : X3DColorNode { 
  MFColor [in,out] color    [] [0,1]
}

ColorRGBA : X3DColorNode { 
  MFColorRGBA [in,out] color    [] [0,1]
}

Coordinate : X3DCoordinateNode { 
  MFVec3f [in,out] point    [] (-Inf,Inf)
}

IndexedLineSet : X3DGeometryNode {
  MFInt32 [in]     set_colorIndex
  MFInt32 [in]     set_coordIndex
  MFNode  [in,out] attrib         []   [X3DVertexAttributeNode]
  SFNode  [in,out] color          NULL [X3DColorNode]
  SFNode  [in,out] coord          NULL [X3DCoordinateNode]
  SFNode  [in,out] fogCoord       []   [FogCoordinate]
  MFInt32 []       colorIndex     []   [0,Inf) or -1
  SFBool  []       colorPerVertex TRUE
  MFInt32 []       coordIndex     []   [0,Inf) or -1
}

IndexedTriangleFanSet : X3DComposedGeometryNode {
  MFInt32 [in]     set_index       []   [0,Inf) or -1
  MFInt32 []       index           []   [0,Inf) or -1
}

IndexedTriangleSet : X3DComposedGeometryNode {
  MFInt32 [in]     set_index       []   [0,Inf)
  MFInt32 []       index           []   [0,Inf)
}

IndexedTriangleStripSet : X3DComposedGeometryNode {
  MFInt32 [in]     set_index       []   [0,Inf) or -1
  MFInt32 []       index           []   [0,Inf) or -1
}

LineSet : X3DGeometryNode {
  MFNode  [in,out] attrib         []   [X3DVertexAttributeNode]
  SFNode  [in,out] color          NULL [X3DColorNode]
  SFNode  [in,out] coord          NULL [X3DCoordinateNode]
  SFNode  [in,out] fogCoord       []   [FogCoordinate]
  MFInt32 [in,out] vertexCount    []   [2,Inf)
}

Normal : X3DNormalNode { 
  MFVec3f [in,out] vector   []   [-1,1]
}

PointSet : X3DGeometryNode { 
  MFNode [in,out] attrib   []   [X3DVertexAttributeNode]
  SFNode [in,out] color    NULL [X3DColorNode]
  SFNode [in,out] coord    NULL [X3DCoordinateNode]
  SFNode [in,out] fogCoord []   [FogCoordinate]
}

TriangleFanSet : X3DComposedGeometryNode {
  MFInt32 [in,out] fanCount        []   [3,Inf)
}

TriangleSet : X3DComposedGeometryNode {
}

TriangleStripSet : X3DComposedGeometryNode {
  MFInt32 [in,out] stripCount      []   [3,Inf)
}
