Skip to content

MULTILEADER gaps #980

@rodion-m

Description

@rodion-m

ACadSharp MULTILEADER Gaps

  • DXF reader now captures MULTILEADER line/dogleg breaks in context data:

    • LeaderLine.StartEndPoints + LeaderLine.SegmentIndex
    • LeaderRoot.BreakStartEndPointsPairs
  • Renderer avoids orphan doglegs when no visible leader line was produced for a root.

  • Test coverage expanded for MULTILEADER corner cases (dogleg disabled endpoint, invisible line behavior, dogleg breaks, multiple roots, direction fallback, custom arrow block, DXF break parsing path).

  • Render-plane fields from context data are not applied:

    • BasePoint, BaseDirection, BaseVertical, NormalReversed
    • Current behavior assumes WCS-only geometry.
  • Connection semantics are simplified:

    • LandingGap is not used to reposition content.
    • Block/text connection-to-extents logic is not implemented (mostly trusts parsed content locations).
  • MTEXT extras from context data are not mapped in rendering:

    • text background fill/mask settings
    • text columns and related layout flags
  • Annotative context selection is not implemented (render path uses MultiLeader.ContextData directly).

  • Break representation in ACadSharp model is limited:

    • LeaderLine has one SegmentIndex for all break pairs, so breaks on multiple segments of the same line cannot be represented faithfully.
  • Cross-CAD parity for connection types is incomplete:

    • per-side behavior (left/right/top/bottom variants, underline/overline modes) is not modeled as a first-class render strategy.
  • Color handling needs oracle validation for all raw-color edge cases (ByBlock, ByLayer, true-color variants in MULTILEADER-specific fields).

Open gaps (validation and quality)

  • Need more oracle tests with real files (AutoCAD/TrueView/BricsCAD baselines):
    • mixed MTEXT/BLOCK content variants
    • multi-root + multi-line + mixed break patterns
    • vertical-attachment cases
    • non-default context plane orientation
  • Need explicit regression fixtures for DXF vs DWG parity around breaks and style overrides.

Suggested next implementation order

  1. Apply context render-plane transformation (BasePoint/BaseDirection/BaseVertical/NormalReversed) in scene-graph MULTILEADER path.
  2. Implement LandingGap + connection-to-content semantics for text/block anchors.
  3. Add MTEXT background/column mapping for MLEADER content.
  4. Extend model or parser strategy for multi-segment break encoding in one leader line.
  5. Add oracle-based integration fixtures for parity verification.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions