/// <summary> /// /// </summary> /// <param name="xml"></param> public Source(XmlNode xml) { if (xml == null || xml.Name != "source") { throw new ArgumentException("xml"); } Id = xml.Attributes["id"].Value; if (xml.Attributes["name"] != null) { Name = xml.Attributes["name"].Value; } foreach (XmlNode node in xml.ChildNodes) { switch (node.Name) { case "float_array": { Array = new FloatArray(node); } break; case "technique_common": { Technique = new TechniqueCommon(node); } break; } } }
public void ParseGeometryLibrary_GeometryMeshSource_TechniqueCommon(XmlNode TechniqueCommonNode, Source CurrentSource) { Console.WriteLine("Entered TechniqueCommonNode"); TechniqueCommon CurrentTechniqueCommon = new TechniqueCommon(); for (int i = 0; i < TechniqueCommonNode.ChildNodes.Count; i++) { if (TechniqueCommonNode.ChildNodes[i].Name.Equals("accessor")) { Console.WriteLine("Entered AccessorNode"); XmlNode AccessorNode = TechniqueCommonNode.ChildNodes[i]; Accessor CurrentAccessor = new Accessor(); for (int j = 0; j < AccessorNode.Attributes.Count; j++) { switch (AccessorNode.Attributes[i].Name) { case "count": CurrentAccessor.mCount = uint.Parse(AccessorNode.Attributes[i].Value); break; case "stride": CurrentAccessor.mStride = uint.Parse(AccessorNode.Attributes[i].Value); break; case "source": CurrentAccessor.mSource = AccessorNode.Attributes[i].Value.ToString().Substring(1); break; } } for (int j = 0; j < AccessorNode.ChildNodes.Count; j++) { if (AccessorNode.ChildNodes[i].Name.Equals("param")) { Console.WriteLine("Entered ParamNode"); XmlNode ParamNode = AccessorNode.ChildNodes[i]; Param CurrentParam = new Param(); for (int k = 0; k < ParamNode.Attributes.Count; k++) { switch (ParamNode.Attributes[i].Name) { case "name": CurrentParam.mName = ParamNode.Attributes[i].Value.ToString(); break; case "type": CurrentParam.mType = ParamNode.Attributes[i].Value.ToString(); break; } } CurrentAccessor.mParams.Add(CurrentParam); } } CurrentTechniqueCommon.mAccessor = CurrentAccessor; } } CurrentSource.mTechniqueCommon = CurrentTechniqueCommon; }
public Source(string id, IDREFArray item, TechniqueCommon techniqueCommon) : this(id, techniqueCommon) { this.array = item; }
public Source(string id, TechniqueCommon techniqueCommon) { this.id = id; this.technique_common = techniqueCommon; }
public void ParseGeometryLibrary_GeometryMeshSource_TechniqueCommon(XmlNode TechniqueCommonNode, Source CurrentSource) { Console.WriteLine("Entered TechniqueCommonNode"); TechniqueCommon CurrentTechniqueCommon = new TechniqueCommon(); for (int i = 0; i < TechniqueCommonNode.ChildNodes.Count; i++) { if (TechniqueCommonNode.ChildNodes[i].Name.Equals("accessor")) { Console.WriteLine("Entered AccessorNode"); XmlNode AccessorNode = TechniqueCommonNode.ChildNodes[i]; Accessor CurrentAccessor = new Accessor(); for (int j = 0; j < AccessorNode.Attributes.Count; j++) { switch(AccessorNode.Attributes[i].Name) { case "count": CurrentAccessor.mCount = uint.Parse(AccessorNode.Attributes[i].Value); break; case "stride": CurrentAccessor.mStride = uint.Parse(AccessorNode.Attributes[i].Value); break; case "source": CurrentAccessor.mSource = AccessorNode.Attributes[i].Value.ToString().Substring(1); break; } } for (int j = 0; j < AccessorNode.ChildNodes.Count; j++) { if (AccessorNode.ChildNodes[i].Name.Equals("param")) { Console.WriteLine("Entered ParamNode"); XmlNode ParamNode = AccessorNode.ChildNodes[i]; Param CurrentParam = new Param(); for (int k = 0; k < ParamNode.Attributes.Count; k++) { switch(ParamNode.Attributes[i].Name) { case "name": CurrentParam.mName = ParamNode.Attributes[i].Value.ToString(); break; case "type": CurrentParam.mType = ParamNode.Attributes[i].Value.ToString(); break; } } CurrentAccessor.mParams.Add(CurrentParam); } } CurrentTechniqueCommon.mAccessor = CurrentAccessor; } } CurrentSource.mTechniqueCommon = CurrentTechniqueCommon; }