public void SerializeTileData(TileData data, Stream stream) { var node = new TWXmlNode(TWXmlNode.CreateXmlDocument(), "TileData"); var guide = node.CreateChildNode("Guid"); XMLSerializer.WriteGuid(guide, data.Guid); var mesh = node.CreateChildNode("Mesh"); XMLSerializer.WriteGuid(mesh, data.Mesh.Guid); var dimensions = node.CreateChildNode("Dimensions"); XMLSerializer.WriteVector3(dimensions, data.Dimensions); var facetypes = node.CreateChildNode("Faces"); for (int i = 0; i < data.FaceTypes.Length; i++) { if (data.FaceTypes[i] == null) { continue; } var faceNode = facetypes.CreateChildNode("Face"); var face = (TileFace)(i + 1); faceNode.AddAttribute("Face", face.ToString()); XMLSerializer.WriteGuid(faceNode.CreateChildNode("Type"), data.FaceTypes[i].GetRoot().Guid); XMLSerializer.WriteBoolean(faceNode.CreateChildNode("Winding"), data.GetTotalWinding(face)); } node.XmlDocument.Save(stream); }
public SnapInformation CreateFromTile(TileData data) { SnapInformation information = new SnapInformation(); for (int i = 0; i < 6; i++) { var tileFace = (TileFace)(i + 1); if (data.GetFaceType(tileFace) == null) { continue; } var faceType = data.GetFaceType(tileFace); SnapPoint point = GetPoint(data, tileFace, faceType, data.GetTotalWinding(tileFace)); point.TileFaceType = faceType; information.addSnapObject(point); } return(information); }