public static XDocument Export(ColladaModel Model)
        {
            XElement RootElement = ColladaXElementFactory.CreateElement("COLLADA");

            RootElement.SetAttributeValue("version", Model.ColladaVersion);
            RootElement.SetAttributeValue("base", ColladaModel.XMLBase);

            if (!Model.AssetData.GetXML().IsEmpty)
            {
                RootElement.Add(Model.AssetData.GetXML());
            }

            foreach (ColladaLibrary Library in Model.Libraries)
            {
                if (!Library.GetXML().IsEmpty)
                {
                    RootElement.Add(Library.GetXML());
                }
            }

            if (!Model.Scene.GetXML().IsEmpty)
            {
                RootElement.Add(Model.Scene.GetXML());
            }

            XDocument document = new XDocument(RootElement);

            return(document);
        }
        public XElement GetXML()
        {
            XElement Element = ColladaXElementFactory.CreateElement("unit");

            Element.SetAttributeValue("name", SceneUnit);
            Element.SetAttributeValue("meter", MetersPerUnit);

            return(Element);
        }
        public override XElement GetXML()
        {
            XElement Element = ColladaXElementFactory.CreateElement("source");

            Element.SetAttributeValue("id", GetElementID());

            Element.Add(CreateArrayElement());
            Element.Add(CreateAccessorTechniqueElement());

            return(Element);
        }
        public XElement GetXML()
        {
            XElement Element = ColladaXElementFactory.CreateElement("coverage");

            foreach (AssetGeographicLocation Location in GeographicLocations)
            {
                Element.Add(Location.GetXML());
            }

            return(Element);
        }
        public XElement GetXML()
        {
            XElement Element = ColladaXElementFactory.CreateElement("technique_" + TechniqueName);

            if (Accessor != null)
            {
                Element.Add(Accessor.GetXML());
            }

            return(Element);
        }
        public XElement GetXML()
        {
            XElement Element = ColladaXElementFactory.CreateElement("geographic_location");

            Element.Add(ColladaXElementFactory.CreateElement("longitude", Longitude));
            Element.Add(ColladaXElementFactory.CreateElement("latitude", Latitude));

            XElement AltitudeElement = ColladaXElementFactory.CreateElement("altitude", Altitude);

            AltitudeElement.SetAttributeValue("mode", Mode.ToFriendlyName());

            Element.Add(AltitudeElement);

            return(Element);
        }
Beispiel #7
0
        public XElement GetXML()
        {
            XElement AccessorElement = ColladaXElementFactory.CreateElement("accessor");

            AccessorElement.SetAttributeValue("source", SourceID);
            AccessorElement.SetAttributeValue("count", ArrayAccessorCount);
            AccessorElement.SetAttributeValue("stride", Stride);

            foreach (KeyValuePair <string, string> Parameter in Parameters)
            {
                XElement ParameterElement = ColladaXElementFactory.CreateElement("param");
                ParameterElement.SetAttributeValue("name", Parameter.Key);
                ParameterElement.SetAttributeValue("type", Parameter.Value);

                AccessorElement.Add(ParameterElement);
            }

            return(AccessorElement);
        }
        public XElement GetXML()
        {
            XElement Element = ColladaXElementFactory.CreateElement("contributor");

            if (!String.IsNullOrEmpty(Author))
            {
                Element.Add(ColladaXElementFactory.CreateElement("author", Author));
            }

            if (!String.IsNullOrEmpty(AuthorEmail))
            {
                Element.Add(ColladaXElementFactory.CreateElement("author_email", AuthorEmail));
            }

            if (!String.IsNullOrEmpty(AuthorWebsite))
            {
                Element.Add(ColladaXElementFactory.CreateElement("author_website", AuthorWebsite));
            }

            if (!String.IsNullOrEmpty(AuthoringTool))
            {
                Element.Add(ColladaXElementFactory.CreateElement("authoring_tool", AuthoringTool));
            }

            if (!String.IsNullOrEmpty(Comments))
            {
                Element.Add(ColladaXElementFactory.CreateElement("comments", Comments));
            }

            if (!String.IsNullOrEmpty(Copyright))
            {
                Element.Add(ColladaXElementFactory.CreateElement("copyright", Copyright));
            }

            if (!String.IsNullOrEmpty(SourceData))
            {
                Element.Add(ColladaXElementFactory.CreateElement("source_data", SourceData));
            }

            return(Element);
        }
        public XElement GetXML()
        {
            XElement GeometryElement = ColladaXElementFactory.CreateElement("geometry");
            XElement MeshElement     = ColladaXElementFactory.CreateElement("mesh");

            GeometryElement.Add(MeshElement);

            MeshElement.Add(VertexPositions.GetXML());
            MeshElement.Add(FaceNormals.GetXML());
            MeshElement.Add(VertexColours.GetXML());

            XElement VertexSourceElement = ColladaXElementFactory.CreateElement("vertices");

            VertexSourceElement.SetAttributeValue("id", GetMeshID() + "-vertices");
            XElement VertexSourceInputElement = ColladaXElementFactory.CreateElement("input");

            VertexSourceInputElement.SetAttributeValue("semantic", "POSITION");
            VertexSourceInputElement.SetAttributeValue("source", "#" + VertexPositions.GetElementID());
            MeshElement.Add(VertexSourceElement);

            return(GeometryElement);
        }
        private XElement CreateArrayElement()
        {
            XElement ArrayElement = ColladaXElementFactory.CreateElement("float_array");


            ArrayElement.SetAttributeValue("id", GetElementID());
            ArrayElement.SetAttributeValue("count", Values.Count);

            // Add all of the elements in the array
            foreach (float Value in Values)
            {
                if (!String.IsNullOrEmpty(ArrayElement.Value))
                {
                    ArrayElement.Value += " " + Value;
                }
                else
                {
                    ArrayElement.Value = Value.ToString();
                }
            }

            return(ArrayElement);
        }
Beispiel #11
0
 public XElement GetXML()
 {
     return(ColladaXElementFactory.CreateElement("scene"));
 }
Beispiel #12
0
        public XElement GetXML()
        {
            XElement Element = ColladaXElementFactory.CreateElement("asset");

            if (!Contributor.GetXML().IsEmpty)
            {
                Element.Add(Contributor.GetXML());
            }

            if (!Coverage.GetXML().IsEmpty)
            {
                Element.Add(Coverage.GetXML());
            }

            Element.Add(ColladaXElementFactory.CreateElement("created", Created.GetXMLTime()));

            if (Keywords.Count > 0)
            {
                XElement keywordsElement = ColladaXElementFactory.CreateElement("keywords");
                foreach (string keyword in Keywords)
                {
                    if (!String.IsNullOrEmpty(keywordsElement.Value))
                    {
                        keywordsElement.Value += " " + keyword;
                    }
                    else
                    {
                        keywordsElement.Value = keyword;
                    }
                }

                Element.Add(keywordsElement);
            }

            Element.Add(ColladaXElementFactory.CreateElement("modifed", Modified.GetXMLTime()));

            if (!String.IsNullOrEmpty(Revision))
            {
                Element.Add(ColladaXElementFactory.CreateElement("revision", Revision));
            }

            if (!String.IsNullOrEmpty(Subject))
            {
                Element.Add(ColladaXElementFactory.CreateElement("subject", Subject));
            }

            if (!String.IsNullOrEmpty(Title))
            {
                Element.Add(ColladaXElementFactory.CreateElement("title", Title));
            }

            Element.Add(SceneUnit.GetXML());

            Element.Add(ColladaXElementFactory.CreateElement("up_axis", UpAxis.ToFriendlyName()));

            if (!Extra.GetXML().IsEmpty)
            {
                Element.Add(Extra.GetXML());
            }

            return(Element);
        }