Beispiel #1
0
            /// <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;
                    }
                }
            }
Beispiel #2
0
        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;
        }
Beispiel #3
0
 public Source(string id, IDREFArray item, TechniqueCommon techniqueCommon)
     : this(id, techniqueCommon)
 {
     this.array = item;
 }
Beispiel #4
0
 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;
        }