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); }
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); }
public XElement GetXML() { return(ColladaXElementFactory.CreateElement("scene")); }
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); }