Table of Contents

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

IReadOnlyList<S98InteroperabilityRule>

FaintSafetyContourColor

The colour of the S-101 safety contour where S-102 covers it (#1132 Q4).

public const string FaintSafetyContourColor = "CHGRF"

Field Value

string

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

S98InteroperabilityRule

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

S98InteroperabilityRule

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

S98InteroperabilityRule

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

S98InteroperabilityRule

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

S98InteroperabilityRule

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

S98InteroperabilityRule

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

S98InteroperabilityRule

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

Field Value

S98InteroperabilityRule