Table of Contents

Class EcdisDisplaySettings

Namespace
EncDotNet.S100.Datasets.Pipelines
Assembly
EncDotNet.S100.Core.dll

Cross-spec ECDIS display settings carried on every RenderContext. Producers (the viewer) populate this from EcdisDisplayState; consumers (per-spec processors) apply it to their IVectorPortrayalCatalogue via ApplyTo(EcdisDisplaySettings, IVectorPortrayalCatalogue).

public sealed record EcdisDisplaySettings : IEquatable<EcdisDisplaySettings>
Inheritance
EcdisDisplaySettings
Implements
Inherited Members
Extension Methods

Properties

ActiveDisplayModes

Per-spec explicit S-100 Part 9 §11.7 display-mode selections (spec code → mode id, e.g. "S-411" → "IceScientificIcesodDisplayMode"). Populated by the viewer's per-dataset display-mode selector for products whose portrayal catalogue declares more than one mode. Unlike Category (which maps to a viewing-group filter), an entry here selects an alternate portrayal and, when present, wins over the ECDIS-category-derived mode in GmlDatasetProcessorBase.ApplyDisplayMode. Empty by default (each catalogue renders its default mode). A null value is equivalent to no entry. Keyed case-insensitively so a producer that populates the map with a different spec casing (e.g. s-411) still matches the canonical lookup key.

public IReadOnlyDictionary<string, string?> ActiveDisplayModes { get; init; }

Property Value

IReadOnlyDictionary<string, string>

Category

The active ECDIS category. Defaults to Standard.

public EcdisDisplayCategory Category { get; init; }

Property Value

EcdisDisplayCategory

HiddenDisplayPlanes

Display planes the user has hidden via the ECDIS panel (S-100 Part 9 §11.6). Empty by default.

public IReadOnlySet<DisplayPlane> HiddenDisplayPlanes { get; init; }

Property Value

IReadOnlySet<DisplayPlane>

HiddenViewingGroups

Per-spec viewing-group ids the user has explicitly hidden via the ECDIS panel. Keys are spec codes (e.g. "S-101"). Empty by default.

public IReadOnlyDictionary<string, IReadOnlySet<int>> HiddenViewingGroups { get; init; }

Property Value

IReadOnlyDictionary<string, IReadOnlySet<int>>

LayerVisibility

Map-wide switches for a product's optional layers, keyed by the processor's stable sub-layer key (e.g. "weather.pressure.isobars" → true). A processor that offers optional layers draws a layer when its entry is true, leaves it out when false, and falls back to its own default when the key is missing. Unlike a dataset's sub-layer visibility, which hides a built layer in one dataset, this applies to every dataset of the product and changes what is portrayed. Set by the viewer's Display controls Weather section (issue #1072). Empty by default, so every layer follows its producer's default (as s100 render does).

public IReadOnlyDictionary<string, bool> LayerVisibility { get; init; }

Property Value

IReadOnlyDictionary<string, bool>

Methods

IsLayerVisible(string, bool)

Whether the optional layer layerKey is drawn: its LayerVisibility entry, or defaultVisible when it has none.

public bool IsLayerVisible(string layerKey, bool defaultVisible)

Parameters

layerKey string

The sub-layer key.

defaultVisible bool

The producer's default.

Returns

bool