dots property

List<SchematicPoint>? dots
final

Optional list of drawable dots (connection points) along the wire path.

Dots represent junction points where multiple wires meet or pass through:

  • Connection endpoints (source/target ports are NOT dots)
  • Points where 3+ wires converge
  • T-junction points (2 wires where at least one passes through)

Exclusions (no dot):

  • Simple corners where 2 wires meet at both endpoints (no extent overlap)

Rules for dot inclusion (from schematic_canvas.dart):

  1. Always draw dot if 3+ edges are incident
  2. For exactly 2 edges: draw dot only if extent overlap (T-junction)
    • Draw if at least one edge is NOT just an endpoint
    • Skip if both edges meet at both of their endpoints (simple corner)

Benefits:

  • Can be culled based on wire bounding box for efficient rendering
  • Can be colored when wire is selected (orange when edges are selected)
  • Provides visual feedback for wire connections
  • Enables hit-testing for wire selection
  • Optional to support different rendering backends (some may not need dots)

Implementation

final List<SchematicPoint>? dots;