public void LoadScene(XmlNode visualSceneNode) { ID = XmlHelper.GetXmlAttribute(visualSceneNode, "id"); Name = XmlHelper.GetXmlAttribute(visualSceneNode, "name"); foreach (XmlNode nodeNode in visualSceneNode) { if (nodeNode.Name == "node") { ColladaSceneNode node = new ColladaSceneNode(this); Nodes.Add(node); node.LoadNode(nodeNode); } } }
public void LoadNode(XmlNode nodeNode) { ID = XmlHelper.GetXmlAttribute(nodeNode, "id"); Name = XmlHelper.GetXmlAttribute(nodeNode, "name"); SetNodeType(XmlHelper.GetXmlAttribute(nodeNode, "type")); XmlNode matrixNode = XmlHelper.GetChildNode(nodeNode, "matrix"); if (matrixNode != null) { Matrix = ColladaModel.LoadColladaMatrix(matrixNode); } foreach (XmlNode instance_geometryNode in nodeNode) { if (instance_geometryNode.Name == "instance_geometry") { if (Instance_Geometry != null) { throw new Exception( "More then one Instance_Geometry node found, which is not currently implemented!"); } string url = XmlHelper.GetXmlAttribute(instance_geometryNode, "url").Substring(1); Instance_Geometry = scene.Model.GetMesh(url); } } foreach (XmlNode childNode in nodeNode) { if (childNode.Name == "node") { ColladaSceneNode node = new ColladaSceneNode(this); Nodes.Add(node); node.LoadNode(childNode); } } }
private ColladaSceneNode(ColladaSceneNode nParent) : this(nParent.scene) { parent = nParent; }