internal override bool ParseNodeBodyElement(string id, VRMLParser parser) { int line=parser.Line; if(id=="autoDisable") AutoDisable=parser.ParseBoolValue(); else if(id=="bodies") { List<X3DNode> nodes=parser.ParseSFNodeOrMFNodeValue(); foreach(X3DNode node in nodes) { IX3DRigidBodyNode rb=node as IX3DRigidBodyNode; if(rb==null) parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); else Bodies.Add(rb); } } else if(id=="constantForceMix") ConstantForceMix=parser.ParseDoubleValue(); else if(id=="contactSurfaceThickness") ContactSurfaceThickness=parser.ParseDoubleValue(); else if(id=="disableAngularSpeed") DisableAngularSpeed=parser.ParseDoubleValue(); else if(id=="disableLinearSpeed") DisableLinearSpeed=parser.ParseDoubleValue(); else if(id=="disableTime") DisableTime=parser.ParseDoubleValue(); else if(id=="enabled") Enabled=parser.ParseBoolValue(); else if(id=="errorCorrection") ErrorCorrection=parser.ParseDoubleValue(); else if(id=="gravity") Gravity=parser.ParseSFVec3fValue(); else if(id=="iterations") Iterations=parser.ParseIntValue(); else if(id=="joints") { List<X3DNode> nodes=parser.ParseSFNodeOrMFNodeValue(); foreach(X3DNode node in nodes) { X3DRigidJointNode rj=node as X3DRigidJointNode; if(rj==null) parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); else Joints.Add(rj); } } else if(id=="maxCorrectionSpeed") MaxCorrectionSpeed=parser.ParseDoubleValue(); else if(id=="preferAccuracy") PreferAccuracy=parser.ParseBoolValue(); else if(id=="collider") { X3DNode node=parser.ParseSFNodeValue(); if(node!=null) { Collider=node as IX3DCollisionCollectionNode; if(Collider==null) parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); } } else return false; return true; }
internal override bool ParseNodeBodyElement(string id, VRMLParser parser) { int line = parser.Line; if (id == "autoDisable") { AutoDisable = parser.ParseBoolValue(); } else if (id == "bodies") { List <X3DNode> nodes = parser.ParseSFNodeOrMFNodeValue(); foreach (X3DNode node in nodes) { IX3DRigidBodyNode rb = node as IX3DRigidBodyNode; if (rb == null) { parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); } else { Bodies.Add(rb); } } } else if (id == "constantForceMix") { ConstantForceMix = parser.ParseDoubleValue(); } else if (id == "contactSurfaceThickness") { ContactSurfaceThickness = parser.ParseDoubleValue(); } else if (id == "disableAngularSpeed") { DisableAngularSpeed = parser.ParseDoubleValue(); } else if (id == "disableLinearSpeed") { DisableLinearSpeed = parser.ParseDoubleValue(); } else if (id == "disableTime") { DisableTime = parser.ParseDoubleValue(); } else if (id == "enabled") { Enabled = parser.ParseBoolValue(); } else if (id == "errorCorrection") { ErrorCorrection = parser.ParseDoubleValue(); } else if (id == "gravity") { Gravity = parser.ParseSFVec3fValue(); } else if (id == "iterations") { Iterations = parser.ParseIntValue(); } else if (id == "joints") { List <X3DNode> nodes = parser.ParseSFNodeOrMFNodeValue(); foreach (X3DNode node in nodes) { X3DRigidJointNode rj = node as X3DRigidJointNode; if (rj == null) { parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); } else { Joints.Add(rj); } } } else if (id == "maxCorrectionSpeed") { MaxCorrectionSpeed = parser.ParseDoubleValue(); } else if (id == "preferAccuracy") { PreferAccuracy = parser.ParseBoolValue(); } else if (id == "collider") { X3DNode node = parser.ParseSFNodeValue(); if (node != null) { Collider = node as IX3DCollisionCollectionNode; if (Collider == null) { parser.ErrorParsingNode(VRMLReaderError.UnexpectedNodeType, this, id, node, line); } } } else { return(false); } return(true); }