internal override bool ParseNodeBodyElement(string id, VRMLParser parser) { int line = parser.Line; if (id == "attrib") { List <X3DNode> nodes = parser.ParseSFNodeOrMFNodeValue(); foreach (X3DNode node in nodes) { X3DVertexAttributeNode attr = node as X3DVertexAttributeNode; if (attr == null) { parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); } else { Attrib.Add(attr); } } } else if (id == "color") { X3DNode node = parser.ParseSFNodeValue(); if (node != null) { Color = node as X3DColorNode; if (Color == null) { parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); } } } else if (id == "fogCoord") { X3DNode node = parser.ParseSFNodeValue(); if (node != null) { FogCoord = node as IX3DFogCoordinateNode; if (FogCoord == null) { parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); } } } else if (id == "normal") { X3DNode node = parser.ParseSFNodeValue(); if (node != null) { Normal = node as X3DNormalNode; if (Normal == null) { parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); } } } else if (id == "texCoord") { X3DNode node = parser.ParseSFNodeValue(); if (node != null) { TexCoord = node as X3DTextureCoordinateNode; if (TexCoord == null) { parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); } } } else if (id == "ccw") { CCW = parser.ParseBoolValue(); } else if (id == "colorPerVertex") { ColorPerVertex = parser.ParseBoolValue(); } else if (id == "creaseAngle") { CreaseAngle = parser.ParseDoubleValue(); } else if (id == "height") { Height.AddRange(parser.ParseSFFloatOrMFFloatValue()); } else if (id == "normalPerVertex") { NormalPerVertex = parser.ParseBoolValue(); } else if (id == "solid") { Solid = parser.ParseBoolValue(); } else if (id == "xDimension") { XDimension = parser.ParseIntValue(); } else if (id == "xSpacing") { XSpacing = parser.ParseDoubleValue(); } else if (id == "zDimension") { ZDimension = parser.ParseIntValue(); } else if (id == "zSpacing") { ZSpacing = parser.ParseDoubleValue(); } else { return(false); } return(true); }
internal override bool ParseNodeBodyElement(string id, VRMLParser parser) { int line = parser.Line; if (id == "color") { X3DNode node = parser.ParseSFNodeValue(); if (node != null) { Color = node as X3DColorNode; if (Color == null) { parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); } } } else if (id == "normal") { X3DNode node = parser.ParseSFNodeValue(); if (node != null) { Normal = node as X3DNormalNode; if (Normal == null) { parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); } } } else if (id == "texCoord") { X3DNode node = parser.ParseSFNodeValue(); if (node != null) { TexCoord = node as X3DTextureCoordinateNode; if (TexCoord == null) { parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); } } } else if (id == "yScale") { YScale = parser.ParseDoubleValue(); } else if (id == "ccw") { CCW = parser.ParseBoolValue(); } else if (id == "colorPerVertex") { ColorPerVertex = parser.ParseBoolValue(); } else if (id == "creaseAngle") { CreaseAngle = parser.ParseDoubleValue(); } else if (id == "geoGridOrigin") { GeoGridOrigin = parser.ParseSFVec3fStringValue(); } else if (id == "geoOrigin") { X3DNode node = parser.ParseSFNodeValue(); if (node != null) { GeoOrigin = node as IX3DGeoOriginNode; if (GeoOrigin == null) { parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); } } } else if (id == "geoSystem") { if (wasGeoSystem) { GeoSystem.AddRange(parser.ParseSFStringOrMFStringValue()); } else { GeoSystem = parser.ParseSFStringOrMFStringValue(); } wasGeoSystem = true; } else if (id == "height") { if (wasHeight) { Height.AddRange(parser.ParseSFFloatOrMFFloatValue()); } else { Height = parser.ParseSFFloatOrMFFloatValue(); } wasHeight = true; } else if (id == "normalPerVertex") { NormalPerVertex = parser.ParseBoolValue(); } else if (id == "solid") { Solid = parser.ParseBoolValue(); } else if (id == "xDimension") { XDimension = parser.ParseIntValue(); } else if (id == "xSpacing") { XSpacing = parser.ParseDoubleStringValue(); } else if (id == "zDimension") { ZDimension = parser.ParseIntValue(); } else if (id == "zSpacing") { ZSpacing = parser.ParseDoubleStringValue(); } else { return(false); } return(true); }