Files
RevitArchive/RevitKits/MetroGauges/LandXMLData/TextPoint3D.cs
2026-02-23 14:58:05 +08:00

108 lines
3.2 KiB
C#

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;
}
}
}