feat: port p-rec-annot line connection boundary rules

This commit is contained in:
codex
2026-08-07 09:24:32 +03:00
parent 43c9e42b5b
commit a8749ffa69
3 changed files with 78 additions and 0 deletions
@@ -70,6 +70,18 @@ public sealed record ElevationAnnotationOperation(string StableId, AnnotationOpe
public sealed record ElevationAnnotationPlan(IReadOnlyList<ElevationAnnotationOperation> Operations);
public sealed record LineConnectionCandidate(string StableId, string LineNumber, Point3Dto FirstEndpoint, Point3Dto SecondEndpoint, Bounds3Dto Bounds, AnnotationPoint Position, double Rotation);
public sealed record LineConnectionGroup(string LineNumber, IReadOnlyList<LineConnectionCandidate> Members, AnnotationPoint Placement, double Rotation);
// A legacy PXP-ALC annotation belongs to a connector between two *different*
// line groups; it is not a duplicate marker for one line group.
public sealed record LineConnectionBoundaryCandidate(
string StableId,
string FirstLineNumber,
string SecondLineNumber,
Point3Dto FirstEndpoint,
Point3Dto SecondEndpoint,
Bounds3Dto Bounds,
AnnotationPoint Position,
double Rotation);
public sealed record LineConnectionBoundaryPlan(string StableId, string Text, AnnotationPoint Position, double Rotation, IReadOnlyList<string> Reasons);
public sealed record LineNumberOwnedRow(string SourceStableId, int MarkerNumber, string Text, AnnotationPoint MarkerAttributePosition);
public sealed record LineNumberRowMutation(string SourceStableId, int PreviousMarkerNumber, int MarkerNumber, string Text, AnnotationPoint? MarkerAttributePosition);
public sealed record LineNumberTextAsset(string Layer, string TextStyle, double Size, string TextValue, Point2Dto Position);