Files
RevitArchive/HYDragCurveJigPro/JigTextInfo.cs
2026-02-23 14:58:05 +08:00

67 lines
2.2 KiB
C#

using Autodesk.Revit.DB;
using System;
namespace HYDragCurveJig
{
public class JigTextInfo
{
public TextNoteType theTextNoteType { get; set; }
public XYZ Origin { get; set; }
public XYZ BaseVec { get; set; }
public XYZ UpVec { get; set; }
public double LineWidth { get; set; }
public TextAlignFlags TextAlign { get; set; }
public string StrText { get; set; }
public JigTextInfo(JigTextInfo rhs)
{
this.theTextNoteType = rhs.theTextNoteType;
this.Origin = rhs.Origin;
this.BaseVec = rhs.BaseVec;
this.UpVec = rhs.UpVec;
this.TextAlign = rhs.TextAlign;
this.LineWidth = rhs.LineWidth;
this.StrText = rhs.StrText;
}
public JigTextInfo(TextNoteType textNoteType, XYZ origin, XYZ baseVec, XYZ upVec, TextAlignFlags textAlign, double lineWidth, string strText)
{
this.theTextNoteType = textNoteType;
this.Origin = origin;
this.BaseVec = baseVec;
this.UpVec = upVec;
this.TextAlign = textAlign;
this.LineWidth = lineWidth;
this.StrText = strText;
}
public JigTextInfo TransformTo(Transform matrix, bool transformCoordinateSystem = false)
{
XYZ xyz = JigGeometry.TransformPoint(this.Origin, matrix);
if (transformCoordinateSystem)
{
this.BaseVec = JigGeometry.TransformPoint(this.BaseVec, matrix);
this.UpVec = JigGeometry.TransformPoint(this.UpVec, matrix);
}
return new JigTextInfo(this.theTextNoteType, xyz, this.BaseVec, this.UpVec, this.TextAlign, this.LineWidth, this.StrText);
}
public void TransformSelf(Transform matrix, bool transformCoordinateSystem = false)
{
this.Origin = JigGeometry.TransformPoint(this.Origin, matrix);
if (transformCoordinateSystem)
{
this.BaseVec = JigGeometry.TransformPoint(this.BaseVec, matrix);
this.UpVec = JigGeometry.TransformPoint(this.UpVec, matrix);
}
}
}
}