internal override void SetXML(XmlElement xml, BaseClassIfc host, HashSet<int> processed)
{
base.SetXML(xml, host, processed);
xml.AppendChild(Points.GetXML(xml.OwnerDocument, "Points", this, processed));
if (mSegments.Count > 0)
{
XmlElement element = xml.OwnerDocument.CreateElement("Segments");
xml.AppendChild(element);
foreach (IfcSegmentIndexSelect seg in Segments)
{
XmlElement s = xml.OwnerDocument.CreateElement(seg.GetType().Name + "-wrapper");
element.AppendChild(s);
IfcArcIndex ai = seg as IfcArcIndex;
if (ai != null)
s.InnerText = ai.mA + " " + ai.mB + " " + ai.mC;
else
{
IfcLineIndex li = seg as IfcLineIndex;
s.InnerText = string.Join(" ", li.mIndices.ConvertAll(x => x.ToString()));
}
}
}
}