internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
		{
			int line=parser.Line;

			if(id=="coord")
			{
				X3DNode node=parser.ParseSFNodeValue();
				if(node!=null)
				{
					Coord=node as X3DCoordinateNode;
					if(Coord==null) parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
				}
			}
			else if(id=="direction") Direction=parser.ParseSFVec3fValue();
			else if(id=="speed") Speed=parser.ParseDoubleValue();
			else if(id=="variation") Variation=parser.ParseDoubleValue();
			else if(id=="coordIndex")
			{
				if(wasCoordIndex) CoordIndex.AddRange(parser.ParseSFInt32OrMFInt32Value());
				else CoordIndex=parser.ParseSFInt32OrMFInt32Value();
				wasCoordIndex=true;
			}
			else if(id=="internal") Internal=parser.ParseBoolValue();
			else if(id=="mass") Mass=parser.ParseDoubleValue();
			else if(id=="surfaceArea") SurfaceArea=parser.ParseDoubleValue();
			else return false;
			return true;
		}
Beispiel #2
0
        internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
        {
            int line = parser.Line;

            if (id == "coord")
            {
                X3DNode node = parser.ParseSFNodeValue();
                if (node != null)
                {
                    Coord = node as X3DCoordinateNode;
                    if (Coord == null)
                    {
                        parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
                    }
                }
            }
            else if (id == "direction")
            {
                Direction = parser.ParseSFVec3fValue();
            }
            else if (id == "speed")
            {
                Speed = parser.ParseDoubleValue();
            }
            else if (id == "variation")
            {
                Variation = parser.ParseDoubleValue();
            }
            else if (id == "coordIndex")
            {
                if (wasCoordIndex)
                {
                    CoordIndex.AddRange(parser.ParseSFInt32OrMFInt32Value());
                }
                else
                {
                    CoordIndex = parser.ParseSFInt32OrMFInt32Value();
                }
                wasCoordIndex = true;
            }
            else if (id == "internal")
            {
                Internal = parser.ParseBoolValue();
            }
            else if (id == "mass")
            {
                Mass = parser.ParseDoubleValue();
            }
            else if (id == "surfaceArea")
            {
                SurfaceArea = parser.ParseDoubleValue();
            }
            else
            {
                return(false);
            }
            return(true);
        }
		internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
		{
			if(id=="address") Address=parser.ParseStringValue();
			else if(id=="applicationID") ApplicationID=parser.ParseIntValue();
			else if(id=="data") Data.AddRange(parser.ParseSFInt32OrMFInt32Value());
			else if(id=="dataLength") DataLength=parser.ParseIntValue();
			else if(id=="enabled") Enabled=parser.ParseBoolValue();
			else if(id=="encodingScheme") EncodingScheme=parser.ParseIntValue();
			else if(id=="entityID") EntityID=parser.ParseIntValue();
			else if(id=="multicastRelayHost") MulticastRelayHost=parser.ParseStringValue();
			else if(id=="multicastRelayPort") MulticastRelayPort=parser.ParseIntValue();
			else if(id=="networkMode") NetworkMode=parser.ParseStringValue();
			else if(id=="port") Port=parser.ParseIntValue();
			else if(id=="radioID") RadioID=parser.ParseIntValue();
			else if(id=="readInterval") ReadInterval=parser.ParseDoubleValue();
			else if(id=="rtpHeaderExpected") RtpHeaderExpected=parser.ParseBoolValue();
			else if(id=="sampleRate") SampleRate=parser.ParseIntValue();
			else if(id=="samples") Samples=parser.ParseIntValue();
			else if(id=="siteID") SiteID=parser.ParseIntValue();
			else if(id=="tdlType") TdlType=parser.ParseIntValue();
			else if(id=="whichGeometry") WhichGeometry=parser.ParseIntValue();
			else if(id=="writeInterval") WriteInterval=parser.ParseDoubleValue();
			else if(id=="bboxCenter") BBoxCenter=parser.ParseSFVec3fValue();
			else if(id=="bboxSize") BBoxSize=parser.ParseSFVec3fValue();
			else return false;
			return true;
		}
		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=="coord")
			{
				X3DNode node=parser.ParseSFNodeValue();
				if(node!=null)
				{
					Coord=node as X3DCoordinateNode;
					if(Coord==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=="colorIndex") ColorIndex=parser.ParseSFInt32OrMFInt32Value();
			else if(id=="colorPerVertex") ColorPerVertex=parser.ParseBoolValue();
			else if(id=="coordIndex") CoordIndex=parser.ParseSFInt32OrMFInt32Value();
			else return false;
			return true;
		}
		internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
		{
			if(id=="name") Name=parser.ParseStringValue();
			else if(id=="reference") Reference=parser.ParseStringValue();
			else if(id=="value") Value.AddRange(parser.ParseSFInt32OrMFInt32Value());
			else return false;
			return true;
		}
		internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
		{
			if(id=="coordIndex") CoordIndex.AddRange(parser.ParseSFInt32OrMFInt32Value());
			else if(id=="displacements") Displacements.AddRange(parser.ParseSFVec3fOrMFVec3fValue());
			else if(id=="name") Name=parser.ParseStringValue();
			else if(id=="weight") Weight=parser.ParseDoubleValue();
			else return false;
			return true;
		}
        internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
        {
            int line = parser.Line;

            if (id == "activeLayer")
            {
                ActiveLayer = parser.ParseIntValue();
            }
            else if (id == "layers")
            {
                List <X3DNode> nodes = parser.ParseSFNodeOrMFNodeValue();
                foreach (X3DNode node in nodes)
                {
                    X3DLayerNode ln = node as X3DLayerNode;
                    if (ln == null)
                    {
                        parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
                    }
                    else
                    {
                        Layers.Add(ln);
                    }
                }
            }
            else if (id == "order")
            {
                if (wasOrder)
                {
                    Order.AddRange(parser.ParseSFInt32OrMFInt32Value());
                }
                else
                {
                    Order = parser.ParseSFInt32OrMFInt32Value();
                }
                wasOrder = true;
            }
            else
            {
                return(false);
            }
            return(true);
        }
		internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
		{
			int line=parser.Line;

			if(id=="image") Image=parser.ParseSFInt32OrMFInt32Value();
			else if(id=="repeatS") RepeatS=parser.ParseBoolValue();
			else if(id=="repeatR") RepeatR=parser.ParseBoolValue();
			else if(id=="repeatT") RepeatT=parser.ParseBoolValue();
			else if(id=="textureProperties")
			{
				X3DNode node=parser.ParseSFNodeValue();
				if(node!=null)
				{
					TextureProperties=node as IX3DTexturePropertiesNode;
					if(TextureProperties==null) parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
				}
			}
			else return false;
			return true;
		}
Beispiel #9
0
 internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
 {
     if (id == "key")
     {
         Key.AddRange(parser.ParseSFFloatOrMFFloatValue());
     }
     else if (id == "keyValue")
     {
         List <int> values = parser.ParseSFInt32OrMFInt32Value();
         foreach (int value in values)
         {
             KeyValue.Add(new SFInt32(value));
         }
     }
     else
     {
         return(false);
     }
     return(true);
 }
Beispiel #10
0
 internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
 {
     if (id == "name")
     {
         Name = parser.ParseStringValue();
     }
     else if (id == "reference")
     {
         Reference = parser.ParseStringValue();
     }
     else if (id == "value")
     {
         Value.AddRange(parser.ParseSFInt32OrMFInt32Value());
     }
     else
     {
         return(false);
     }
     return(true);
 }
Beispiel #11
0
        internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
        {
            int line = parser.Line;

            if (id == "image")
            {
                Image = parser.ParseSFInt32OrMFInt32Value();
            }
            else if (id == "repeatS")
            {
                RepeatS = parser.ParseBoolValue();
            }
            else if (id == "repeatR")
            {
                RepeatR = parser.ParseBoolValue();
            }
            else if (id == "repeatT")
            {
                RepeatT = parser.ParseBoolValue();
            }
            else if (id == "textureProperties")
            {
                X3DNode node = parser.ParseSFNodeValue();
                if (node != null)
                {
                    TextureProperties = node as IX3DTexturePropertiesNode;
                    if (TextureProperties == null)
                    {
                        parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
                    }
                }
            }
            else
            {
                return(false);
            }
            return(true);
        }
 internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
 {
     if (id == "coordIndex")
     {
         CoordIndex.AddRange(parser.ParseSFInt32OrMFInt32Value());
     }
     else if (id == "displacements")
     {
         Displacements.AddRange(parser.ParseSFVec3fOrMFVec3fValue());
     }
     else if (id == "name")
     {
         Name = parser.ParseStringValue();
     }
     else if (id == "weight")
     {
         Weight = parser.ParseDoubleValue();
     }
     else
     {
         return(false);
     }
     return(true);
 }
        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 == "coord")
            {
                X3DNode node = parser.ParseSFNodeValue();
                if (node != null)
                {
                    Coord = node as X3DCoordinateNode;
                    if (Coord == 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 == "vertexCount")
            {
                VertexCount.AddRange(parser.ParseSFInt32OrMFInt32Value());
            }
            else
            {
                return(false);
            }
            return(true);
        }
Beispiel #14
0
 internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
 {
     if (id == "address")
     {
         Address = parser.ParseStringValue();
     }
     else if (id == "applicationID")
     {
         ApplicationID = parser.ParseIntValue();
     }
     else if (id == "data")
     {
         Data.AddRange(parser.ParseSFInt32OrMFInt32Value());
     }
     else if (id == "dataLength")
     {
         DataLength = parser.ParseIntValue();
     }
     else if (id == "enabled")
     {
         Enabled = parser.ParseBoolValue();
     }
     else if (id == "encodingScheme")
     {
         EncodingScheme = parser.ParseIntValue();
     }
     else if (id == "entityID")
     {
         EntityID = parser.ParseIntValue();
     }
     else if (id == "multicastRelayHost")
     {
         MulticastRelayHost = parser.ParseStringValue();
     }
     else if (id == "multicastRelayPort")
     {
         MulticastRelayPort = parser.ParseIntValue();
     }
     else if (id == "networkMode")
     {
         NetworkMode = parser.ParseStringValue();
     }
     else if (id == "port")
     {
         Port = parser.ParseIntValue();
     }
     else if (id == "radioID")
     {
         RadioID = parser.ParseIntValue();
     }
     else if (id == "readInterval")
     {
         ReadInterval = parser.ParseDoubleValue();
     }
     else if (id == "rtpHeaderExpected")
     {
         RtpHeaderExpected = parser.ParseBoolValue();
     }
     else if (id == "sampleRate")
     {
         SampleRate = parser.ParseIntValue();
     }
     else if (id == "samples")
     {
         Samples = parser.ParseIntValue();
     }
     else if (id == "siteID")
     {
         SiteID = parser.ParseIntValue();
     }
     else if (id == "tdlType")
     {
         TdlType = parser.ParseIntValue();
     }
     else if (id == "whichGeometry")
     {
         WhichGeometry = parser.ParseIntValue();
     }
     else if (id == "writeInterval")
     {
         WriteInterval = parser.ParseDoubleValue();
     }
     else if (id == "bboxCenter")
     {
         BBoxCenter = parser.ParseSFVec3fValue();
     }
     else if (id == "bboxSize")
     {
         BBoxSize = parser.ParseSFVec3fValue();
     }
     else
     {
         return(false);
     }
     return(true);
 }
Beispiel #15
0
        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 == "coord")
            {
                X3DNode node = parser.ParseSFNodeValue();
                if (node != null)
                {
                    Coord = node as X3DCoordinateNode;
                    if (Coord == 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 == "normalPerVertex")
            {
                NormalPerVertex = parser.ParseBoolValue();
            }
            else if (id == "solid")
            {
                Solid = parser.ParseBoolValue();
            }
            else if (id == "index")
            {
                Index = parser.ParseSFInt32OrMFInt32Value();
            }
            else
            {
                return(false);
            }
            return(true);
        }
		internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
		{
			int line=parser.Line;

			if(id=="address") Address=parser.ParseStringValue();
			else if(id=="applicationID") ApplicationID=parser.ParseIntValue();
			else if(id=="articulationParameterCount") ArticulationParameterCount=parser.ParseIntValue();
			else if(id=="articulationParameterDesignatorArray") ArticulationParameterDesignatorArray.AddRange(parser.ParseSFInt32OrMFInt32Value());
			else if(id=="articulationParameterChangeIndicatorArray") ArticulationParameterChangeIndicatorArray.AddRange(parser.ParseSFInt32OrMFInt32Value());
			else if(id=="articulationParameterIdPartAttachedToArray") ArticulationParameterIdPartAttachedToArray.AddRange(parser.ParseSFInt32OrMFInt32Value());
			else if(id=="articulationParameterTypeArray") ArticulationParameterTypeArray.AddRange(parser.ParseSFInt32OrMFInt32Value());
			else if(id=="articulationParameterArray") ArticulationParameterArray.AddRange(parser.ParseSFFloatOrMFFloatValue());
			else if(id=="center") Center=parser.ParseSFVec3fValue();
			else if(id=="children")
			{
				List<X3DNode> nodes=parser.ParseSFNodeOrMFNodeValue();
				foreach(X3DNode node in nodes)
				{
					X3DChildNode child=node as X3DChildNode;
					if(child==null) parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
					else Children.Add(child);
				}
			}
			else if(id=="collisionType") CollisionType=parser.ParseIntValue();
			else if(id=="deadReckoning") DeadReckoning=parser.ParseIntValue();
			else if(id=="detonationLocation") DetonationLocation=parser.ParseSFVec3fValue();
			else if(id=="detonationRelativeLocation") DetonationRelativeLocation=parser.ParseSFVec3fValue();
			else if(id=="detonationResult") DetonationResult=parser.ParseIntValue();
			else if(id=="enabled") Enabled=parser.ParseBoolValue();
			else if(id=="entityCategory") EntityCategory=parser.ParseIntValue();
			else if(id=="entityCountry") EntityCountry=parser.ParseIntValue();
			else if(id=="entityDomain") EntityDomain=parser.ParseIntValue();
			else if(id=="entityExtra") EntityExtra=parser.ParseIntValue();
			else if(id=="entityID") EntityID=parser.ParseIntValue();
			else if(id=="entityKind") EntityKind=parser.ParseIntValue();
			else if(id=="entitySpecific") EntitySpecific=parser.ParseIntValue();
			else if(id=="entitySubCategory") EntitySubCategory=parser.ParseIntValue();
			else if(id=="eventApplicationID") EventApplicationID=parser.ParseIntValue();
			else if(id=="eventEntityID") EventEntityID=parser.ParseIntValue();
			else if(id=="eventNumber") EventNumber=parser.ParseIntValue();
			else if(id=="eventSiteID") EventSiteID=parser.ParseIntValue();
			else if(id=="fired1") Fired1=parser.ParseBoolValue();
			else if(id=="fired2") Fired2=parser.ParseBoolValue();
			else if(id=="fireMissionIndex") FireMissionIndex=parser.ParseIntValue();
			else if(id=="firingRange") FiringRange=parser.ParseDoubleValue();
			else if(id=="firingRate") FiringRate=parser.ParseIntValue();
			else if(id=="forceID") ForceID=parser.ParseIntValue();
			else if(id=="fuse") Fuse=parser.ParseIntValue();
			else if(id=="linearVelocity") LinearVelocity=parser.ParseSFVec3fValue();
			else if(id=="linearAcceleration") LinearAcceleration=parser.ParseSFVec3fValue();
			else if(id=="marking") Marking=parser.ParseStringValue();
			else if(id=="multicastRelayHost") MulticastRelayHost=parser.ParseStringValue();
			else if(id=="multicastRelayPort") MulticastRelayPort=parser.ParseIntValue();
			else if(id=="munitionApplicationID") MunitionApplicationID=parser.ParseIntValue();
			else if(id=="munitionEndPoint") MunitionEndPoint=parser.ParseSFVec3fValue();
			else if(id=="munitionEntityID") MunitionEntityID=parser.ParseIntValue();
			else if(id=="munitionQuantity") MunitionQuantity=parser.ParseIntValue();
			else if(id=="munitionSiteID") MunitionSiteID=parser.ParseIntValue();
			else if(id=="munitionStartPoint") MunitionStartPoint=parser.ParseSFVec3fValue();
			else if(id=="networkMode") NetworkMode=parser.ParseStringValue();
			else if(id=="port") Port=parser.ParseIntValue();
			else if(id=="readInterval") ReadInterval=parser.ParseDoubleValue();
			else if(id=="rotation") Rotation=parser.ParseSFRotationValue();
			else if(id=="scale") Scale=parser.ParseSFVec3fValue();
			else if(id=="scaleOrientation") ScaleOrientation=parser.ParseSFRotationValue();
			else if(id=="siteID") SiteID=parser.ParseIntValue();
			else if(id=="translation") Translation=parser.ParseSFVec3fValue();
			else if(id=="warhead") Warhead=parser.ParseIntValue();
			else if(id=="writeInterval") WriteInterval=parser.ParseDoubleValue();
			else if(id=="bboxCenter") BBoxCenter=parser.ParseSFVec3fValue();
			else if(id=="bboxSize") BBoxSize=parser.ParseSFVec3fValue();
			else if(id=="rtpHeaderExpected") RtpHeaderExpected=parser.ParseBoolValue();
			else return false;
			return true;
		}
		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=="coord")
			{
				X3DNode node=parser.ParseSFNodeValue();
				if(node!=null)
				{
					Coord=node as X3DCoordinateNode;
					if(Coord==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=="colorIndex") ColorIndex.AddRange(parser.ParseSFInt32OrMFInt32Value());
			else if(id=="colorPerVertex") ColorPerVertex=parser.ParseBoolValue();
			else if(id=="convex") Convex=parser.ParseBoolValue();
			else if(id=="coordIndex") CoordIndex.AddRange(parser.ParseSFInt32OrMFInt32Value());
			else if(id=="creaseAngle") CreaseAngle=parser.ParseDoubleValue();
			else if(id=="normalIndex") NormalIndex.AddRange(parser.ParseSFInt32OrMFInt32Value());
			else if(id=="normalPerVertex") NormalPerVertex=parser.ParseBoolValue();
			else if(id=="solid") Solid=parser.ParseBoolValue();
			else if(id=="texCoordIndex") TexCoordIndex.AddRange(parser.ParseSFInt32OrMFInt32Value());
			else return false;
			return true;
		}
        internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
        {
            int line = parser.Line;

            if (id == "address")
            {
                Address = parser.ParseStringValue();
            }
            else if (id == "applicationID")
            {
                ApplicationID = parser.ParseIntValue();
            }
            else if (id == "articulationParameterCount")
            {
                ArticulationParameterCount = parser.ParseIntValue();
            }
            else if (id == "articulationParameterDesignatorArray")
            {
                ArticulationParameterDesignatorArray.AddRange(parser.ParseSFInt32OrMFInt32Value());
            }
            else if (id == "articulationParameterChangeIndicatorArray")
            {
                ArticulationParameterChangeIndicatorArray.AddRange(parser.ParseSFInt32OrMFInt32Value());
            }
            else if (id == "articulationParameterIdPartAttachedToArray")
            {
                ArticulationParameterIdPartAttachedToArray.AddRange(parser.ParseSFInt32OrMFInt32Value());
            }
            else if (id == "articulationParameterTypeArray")
            {
                ArticulationParameterTypeArray.AddRange(parser.ParseSFInt32OrMFInt32Value());
            }
            else if (id == "articulationParameterArray")
            {
                ArticulationParameterArray.AddRange(parser.ParseSFFloatOrMFFloatValue());
            }
            else if (id == "center")
            {
                Center = parser.ParseSFVec3fValue();
            }
            else if (id == "children")
            {
                List <X3DNode> nodes = parser.ParseSFNodeOrMFNodeValue();
                foreach (X3DNode node in nodes)
                {
                    X3DChildNode child = node as X3DChildNode;
                    if (child == null)
                    {
                        parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
                    }
                    else
                    {
                        Children.Add(child);
                    }
                }
            }
            else if (id == "collisionType")
            {
                CollisionType = parser.ParseIntValue();
            }
            else if (id == "deadReckoning")
            {
                DeadReckoning = parser.ParseIntValue();
            }
            else if (id == "detonationLocation")
            {
                DetonationLocation = parser.ParseSFVec3fValue();
            }
            else if (id == "detonationRelativeLocation")
            {
                DetonationRelativeLocation = parser.ParseSFVec3fValue();
            }
            else if (id == "detonationResult")
            {
                DetonationResult = parser.ParseIntValue();
            }
            else if (id == "enabled")
            {
                Enabled = parser.ParseBoolValue();
            }
            else if (id == "entityCategory")
            {
                EntityCategory = parser.ParseIntValue();
            }
            else if (id == "entityCountry")
            {
                EntityCountry = parser.ParseIntValue();
            }
            else if (id == "entityDomain")
            {
                EntityDomain = parser.ParseIntValue();
            }
            else if (id == "entityExtra")
            {
                EntityExtra = parser.ParseIntValue();
            }
            else if (id == "entityID")
            {
                EntityID = parser.ParseIntValue();
            }
            else if (id == "entityKind")
            {
                EntityKind = parser.ParseIntValue();
            }
            else if (id == "entitySpecific")
            {
                EntitySpecific = parser.ParseIntValue();
            }
            else if (id == "entitySubCategory")
            {
                EntitySubCategory = parser.ParseIntValue();
            }
            else if (id == "eventApplicationID")
            {
                EventApplicationID = parser.ParseIntValue();
            }
            else if (id == "eventEntityID")
            {
                EventEntityID = parser.ParseIntValue();
            }
            else if (id == "eventNumber")
            {
                EventNumber = parser.ParseIntValue();
            }
            else if (id == "eventSiteID")
            {
                EventSiteID = parser.ParseIntValue();
            }
            else if (id == "fired1")
            {
                Fired1 = parser.ParseBoolValue();
            }
            else if (id == "fired2")
            {
                Fired2 = parser.ParseBoolValue();
            }
            else if (id == "fireMissionIndex")
            {
                FireMissionIndex = parser.ParseIntValue();
            }
            else if (id == "firingRange")
            {
                FiringRange = parser.ParseDoubleValue();
            }
            else if (id == "firingRate")
            {
                FiringRate = parser.ParseIntValue();
            }
            else if (id == "forceID")
            {
                ForceID = parser.ParseIntValue();
            }
            else if (id == "fuse")
            {
                Fuse = parser.ParseIntValue();
            }
            else if (id == "linearVelocity")
            {
                LinearVelocity = parser.ParseSFVec3fValue();
            }
            else if (id == "linearAcceleration")
            {
                LinearAcceleration = parser.ParseSFVec3fValue();
            }
            else if (id == "marking")
            {
                Marking = parser.ParseStringValue();
            }
            else if (id == "multicastRelayHost")
            {
                MulticastRelayHost = parser.ParseStringValue();
            }
            else if (id == "multicastRelayPort")
            {
                MulticastRelayPort = parser.ParseIntValue();
            }
            else if (id == "munitionApplicationID")
            {
                MunitionApplicationID = parser.ParseIntValue();
            }
            else if (id == "munitionEndPoint")
            {
                MunitionEndPoint = parser.ParseSFVec3fValue();
            }
            else if (id == "munitionEntityID")
            {
                MunitionEntityID = parser.ParseIntValue();
            }
            else if (id == "munitionQuantity")
            {
                MunitionQuantity = parser.ParseIntValue();
            }
            else if (id == "munitionSiteID")
            {
                MunitionSiteID = parser.ParseIntValue();
            }
            else if (id == "munitionStartPoint")
            {
                MunitionStartPoint = parser.ParseSFVec3fValue();
            }
            else if (id == "networkMode")
            {
                NetworkMode = parser.ParseStringValue();
            }
            else if (id == "port")
            {
                Port = parser.ParseIntValue();
            }
            else if (id == "readInterval")
            {
                ReadInterval = parser.ParseDoubleValue();
            }
            else if (id == "rotation")
            {
                Rotation = parser.ParseSFRotationValue();
            }
            else if (id == "scale")
            {
                Scale = parser.ParseSFVec3fValue();
            }
            else if (id == "scaleOrientation")
            {
                ScaleOrientation = parser.ParseSFRotationValue();
            }
            else if (id == "siteID")
            {
                SiteID = parser.ParseIntValue();
            }
            else if (id == "translation")
            {
                Translation = parser.ParseSFVec3fValue();
            }
            else if (id == "warhead")
            {
                Warhead = parser.ParseIntValue();
            }
            else if (id == "writeInterval")
            {
                WriteInterval = parser.ParseDoubleValue();
            }
            else if (id == "bboxCenter")
            {
                BBoxCenter = parser.ParseSFVec3fValue();
            }
            else if (id == "bboxSize")
            {
                BBoxSize = parser.ParseSFVec3fValue();
            }
            else if (id == "rtpHeaderExpected")
            {
                RtpHeaderExpected = parser.ParseBoolValue();
            }
            else
            {
                return(false);
            }
            return(true);
        }
        internal override bool ParseNodeBodyElement(string id, VRMLParser parser)
        {
            int line = parser.Line;

            if (id == "center")
            {
                Center = parser.ParseSFVec3fValue();
            }
            else if (id == "children")
            {
                List <X3DNode> nodes = parser.ParseSFNodeOrMFNodeValue();
                foreach (X3DNode node in nodes)
                {
                    X3DChildNode child = node as IX3DHAnimJointChildren;
                    if (child == null)
                    {
                        parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
                    }
                    else
                    {
                        Children.Add(child);
                    }
                }
            }
            else if (id == "displacers")
            {
                List <X3DNode> nodes = parser.ParseSFNodeOrMFNodeValue();
                foreach (X3DNode node in nodes)
                {
                    IX3DHAnimDisplacerNode displacer = node as IX3DHAnimDisplacerNode;
                    if (displacer == null)
                    {
                        parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line);
                    }
                    else
                    {
                        Displacers.Add(displacer);
                    }
                }
            }
            else if (id == "limitOrientation")
            {
                LimitOrientation = parser.ParseSFRotationValue();
            }
            else if (id == "llimit")
            {
                Llimit.AddRange(parser.ParseSFFloatOrMFFloatValue());
            }
            else if (id == "name")
            {
                Name = parser.ParseStringValue();
            }
            else if (id == "rotation")
            {
                Rotation = parser.ParseSFRotationValue();
            }
            else if (id == "scale")
            {
                Scale = parser.ParseSFVec3fValue();
            }
            else if (id == "scaleOrientation")
            {
                ScaleOrientation = parser.ParseSFRotationValue();
            }
            else if (id == "skinCoordIndex")
            {
                SkinCoordIndex.AddRange(parser.ParseSFInt32OrMFInt32Value());
            }
            else if (id == "skinCoordWeight")
            {
                SkinCoordWeight.AddRange(parser.ParseSFFloatOrMFFloatValue());
            }
            else if (id == "stiffness")
            {
                if (wasStiffness)
                {
                    Stiffness.AddRange(parser.ParseSFFloatOrMFFloatValue());
                }
                else
                {
                    Stiffness = parser.ParseSFFloatOrMFFloatValue();
                }
                wasStiffness = true;
            }
            else if (id == "translation")
            {
                Translation = parser.ParseSFVec3fValue();
            }
            else if (id == "ulimit")
            {
                Ulimit.AddRange(parser.ParseSFFloatOrMFFloatValue());
            }
            else if (id == "bboxCenter")
            {
                BBoxCenter = parser.ParseSFVec3fValue();
            }
            else if (id == "bboxSize")
            {
                BBoxSize = parser.ParseSFVec3fValue();
            }
            else
            {
                return(false);
            }
            return(true);
        }