Class S98DefaultRules
- Namespace
- EncDotNet.S100.Datasets.Pipelines.Interoperability
- Assembly
- EncDotNet.S100.Core.dll
The inter-product rules shipped in PR-L2 (S-98 Edition 2.0.0), plus the
SoundCharts weather rules R_101_WX_B_ClipWeatherFillsToWater
and R_111_WX_B_HideModelCurrentsUnderS111. Three
rules (R_101_102_A, R_104_A,
R_111_A) are pure plane-assignment properties already
satisfied by the default plane table; they carry an identity
Effect and exist as named property
anchors for tests. R_101_124_A is the analogous Level-0
derivation for S-124. The Level-2 rule
R_101_102_B_SuppressDepthFeatures is the only one with a
non-identity effect — it removes the S-101 DepthArea and
DepthContour features inside an active S-102 dataset's coverage from
the stack, honouring the MSC.232(82) §5.8 safety-contour exception.
public static class S98DefaultRules
- Inheritance
-
S98DefaultRules
- Inherited Members
Remarks
Suppression operates on the encoding-neutral DrawingInstruction slice carried by a VectorStackPayload: the rule filters the affected S-101 sub-layer's instructions and substitutes a payload whose VectorSubLayer carries the surviving instructions. The per-feature decision is delegated to S98SuppressionPolicy so the headless and Mapsui renderers (which both build from the filtered slice) can never drift. Cites S-98 Ed.2.0.0 Annex A §8.4.1 + Part B §B-3.1.2 + Annex A §A-6.9.1 NOTE + MSC.232(82) §5.8.
Fields
Default
The default rule collection in evaluation order. Declaration order is the evaluation order; each rule's output is the next rule's input.
public static readonly IReadOnlyList<S98InteroperabilityRule> Default
Field Value
FaintSafetyContourColor
The colour of the S-101 safety contour where S-102 covers it (#1132 Q4).
public const string FaintSafetyContourColor = "CHGRF"
Field Value
R_101_102_A
R-101-102-A (Level 1) — S-102 must render between S-101 area fills (BaseChartUnder) and S-101 line work (BaseChartOver). Identity effect — satisfied by the default plane assignment. Cites S-98 Ed.2.0.0 Annex A §A-6.9.1.
public static readonly S98InteroperabilityRule R_101_102_A
Field Value
R_101_102_B_SuppressDepthFeatures
R-101-102-B (Level 2) — when an S-102 dataset is loaded and active,
suppress the S-101 DepthArea and DepthContour features
that lie inside its coverage extent so the gridded bathymetric surface
replaces the legacy depth shading there. Outside every active S-102
extent the ENC depth features stay: the surface overwrites them only
where it is displayed (S-98 Part A §A-6.9.1), so suppressing them
everywhere left a chart without depth shading beyond a small S-102
tile. A feature that straddles the extent's edge is kept; its fill
paints under the opaque surface anyway. An active S-102 dataset whose
stack items report no CoverageExtent
is taken to cover everything. The
S-101 safety contour (the contour whose VALDCO equals the
mariner's
SafetyContour) is
preserved per MSC.232(82) §5.8. Cites S-98 Ed.2.0.0 Annex A §8.4.1 +
Part B §B-3.1.2 + Annex A §A-6.9.1 NOTE + MSC.232(82) §5.8.
public static readonly S98InteroperabilityRule R_101_102_B_SuppressDepthFeatures
Field Value
R_101_104_B_ClipSurfaceToWater
R-101-104-B (Level 2) — when both an S-101 ENC and an S-104 water-level
dataset are loaded and active, clip the (non-normative) S-104 gridded
surface to water areas by attaching the ENC's LandArea geometry to
the S-104 surface sub-layer — a colour raster or, for the SoundCharts
portrayal, water-level isolines. The renderers then clip the surface to
those polygons at output-pixel resolution, so it — layered like S-102
bathymetry, beneath ENC line work — never crosses land (issue #483).
Only the gridded (dcf2) surface is affected;
station-glyph (dcf8) sub-layers are discrete points and are left
untouched. Cites S-98 Ed.2.0.0 Annex A §A-6.9.1 + Main §9.2.1 layer 6.
public static readonly S98InteroperabilityRule R_101_104_B_ClipSurfaceToWater
Field Value
R_101_124_A
R-101-124-A (Level 0, derived) — S-124 navigational warnings render on CautionsAndWarnings, above ENC base data and below mariner overlays. Identity effect.
public static readonly S98InteroperabilityRule R_101_124_A
Field Value
R_101_WX_B_ClipWeatherFillsToWater
R-101-WX-B (Level 2, SoundCharts) — when an S-101 ENC is loaded and
active, clip every active coverage surface that asks for it
(ClipToWater; today the weather wave
height fill) to water, exactly as R_101_104_B_ClipSurfaceToWater
clips the S-104 surface: the same ENC LandArea geometry is
attached as the sub-layer's LandAreaMask
and the renderers clip at output-pixel resolution. Weather grids have no
S-100 product specification, so the rule keys on the sub-layer's flag
rather than a product pair; wind fills don't set it, because wind blows
over land too (design note weather-sources.md §4.2; issue #1072). Cites
S-98 Ed.2.0.0 Annex A §A-6.9.1 + Main §9.2.1 layer 6 by analogy with
R-101-104-B.
public static readonly S98InteroperabilityRule R_101_WX_B_ClipWeatherFillsToWater
Field Value
R_104_A
R-104-A (Level 1) — S-104 colour-band surface renders on OnDemandSurface, below S-101 line work. Identity effect.
public static readonly S98InteroperabilityRule R_104_A
Field Value
R_111_A
R-111-A (Level 1) — S-111 colour-band surface renders on OnDemandSurface; the arrow overlay renders on DynamicArrows for every data coding format. S-98 names no arrow plane: Main §9.2.1 puts surface currents in layer 6 and Part A §A-6.9.1 has gridded data go over the ENC; the DynamicArrows placement is this library's (see DynamicArrows). Identity effect.
public static readonly S98InteroperabilityRule R_111_A
Field Value
R_111_WX_B_HideModelCurrentsUnderS111
R-111-WX-B (Level 2, SoundCharts) — when an S-111 dataset is loaded and active, hide the model current arrows that ask for it (YieldsToS111; the weather current arrows, issue #1228) inside the S-111 dataset's CoverageExtent, so the official surface current forecast is the only one drawn there. Outside every S-111 extent the model arrows stay. An S-111 dataset that reports no extent (the station and mesh formats) hides nothing: its points don't cover the area between them. Only arrows on a geographic grid are masked, cell by cell on the cell's centre. Cites S-98 Ed.2.0.0 Annex A §A-6.9.1 by analogy with R_101_102_B_SuppressDepthFeatures: the more authoritative product replaces the other where it is displayed.
public static readonly S98InteroperabilityRule R_111_WX_B_HideModelCurrentsUnderS111