using System.Globalization; using System.Xml.Serialization; namespace ShrlAlgoToolkit.RevitAddins.RvIndependent.MetroGauges.LandXMLData { public class TextPoint3D : TextPoint2D { private double _third; [XmlIgnore] public new double First { get => _first; set { if (_first != value) { _first = value; _text = string.Concat( _first.ToString(CultureInfo.InvariantCulture), " ", _second.ToString(CultureInfo.InvariantCulture), " ", _third.ToString(CultureInfo.InvariantCulture) ); } } } [XmlIgnore] public new double Second { get => _second; set { if (_second != value) { _second = value; _text = string.Concat( _first.ToString(CultureInfo.InvariantCulture), " ", _second.ToString(CultureInfo.InvariantCulture), " ", _third.ToString(CultureInfo.InvariantCulture) ); } } } [XmlText] public new string Text { get => _text; set { if (_text != value) { _text = value; if (_text != null && _text.Contains(' ')) { string[] array = _text.Split(' '); if (array.Length > 2) { double.TryParse(array[0], NumberStyles.Float, CultureInfo.InvariantCulture, out _first); double.TryParse(array[1], NumberStyles.Float, CultureInfo.InvariantCulture, out _second); double.TryParse(array[2], NumberStyles.Float, CultureInfo.InvariantCulture, out _third); } } } } } [XmlIgnore] public double Third { get => _third; set { if (_third != value) { _third = value; _text = string.Concat( _first.ToString(CultureInfo.InvariantCulture), " ", _second.ToString(CultureInfo.InvariantCulture), " ", _third.ToString(CultureInfo.InvariantCulture) ); } } } public void setText(double x, double y, double z) { _text = string.Concat( x.ToString(CultureInfo.InvariantCulture), " ", y.ToString(CultureInfo.InvariantCulture), " ", z.ToString(CultureInfo.InvariantCulture) ); _first = x; _second = y; _third = z; } } }