Class DrawingInstruction
A unified, resource-unresolved S-100 Part 9 drawing instruction. Instances reference catalogue resources (symbols, line styles, area fills, fonts) by name, and reference dataset features by id (FeatureReference); the renderer is responsible for resolving geometry and visual resources.
public abstract class DrawingInstruction
- Inheritance
-
DrawingInstruction
- Derived
- Inherited Members
Remarks
This shape matches the S-100 Part 9 display list produced by both the
XSLT-style portrayal pipelines (S-124, S-129, S-421) and the Lua-style
portrayal pipeline (S-101 — see
EncDotNet.S100.Datasets.S101.DrawingInstructionParser).
Properties
AdditionalViewingGroups
Viewing groups assigned to this instruction after
ViewingGroup, in emission order (e.g. the 90020 of an
S-101 ViewingGroup:27070,90020 command). Empty when the instruction
has a single viewing group.
public IReadOnlyList<int> AdditionalViewingGroups { get; init; }
Property Value
Remarks
S-100 Ed 5.2 Part 9 §9-11.1.3 (and Part 9a §9a-11.2.2.1, the
ViewingGroup:vg1[,vg2[,…]] command): "A drawing instruction which
has multiple Viewing Groups is disabled when any assigned Viewing Group
is disabled". IsVisible(DrawingInstruction)
applies that rule over ViewingGroup and every id here.
AlertReference
The alert the instruction's geometry raises when a route crosses it,
or null when it raises none (S-100 Part 9
alertReference; set by the AlertReference command of Part
9a §9a-11.2.2.9). Route checks read it; drawing ignores it.
public PortrayalAlertReference? AlertReference { get; init; }
Property Value
DrawingPriority
Drawing priority within the display plane (ascending, back-to-front). Within the same priority, the S-100 Part 9 type order applies: areas → lines → points → text.
public int DrawingPriority { get; init; }
Property Value
FeatureReference
Identifier of the dataset feature this instruction portrays. The renderer uses this to look up geometry from the dataset.
public required string FeatureReference { get; init; }
Property Value
Plane
Whether the instruction renders under or over the radar overlay.
public DisplayPlane Plane { get; init; }
Property Value
ScaleMaximum
Maximum display scale denominator at which this instruction is visible (i.e. zoomed-in limit). Null means no upper bound.
public double? ScaleMaximum { get; init; }
Property Value
ScaleMinimum
Minimum display scale denominator at which this instruction is visible (i.e. zoomed-out limit). Null means no lower bound.
public double? ScaleMinimum { get; init; }
Property Value
TimeValid
The time intervals the instruction is drawn in, or empty when it is
always drawn (S-100 Part 9 timeValid; set by the
Date/Time/DateTime and TimeValid commands of
Part 9a §9a-11.2.6). The instruction is drawn when the time the map
shows falls in any of them; see PortrayalTimeFilter.
public IReadOnlyList<PortrayalTimeInterval> TimeValid { get; init; }
Property Value
ViewingGroup
Primary viewing group controlling visibility of this instruction — the first id the portrayal assigned. See AdditionalViewingGroups for any further ids.
public int ViewingGroup { get; init; }