Table of Contents

Class HeadlessCompositor

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

Mapsui-free multi-layer S-100 compositor. Given a set of pre-built, renderer-neutral portrayal results (vector and/or coverage), the compositor drives the renderer-neutral S-98 ordering / suppression engine (LayerStackBuilder + IInteroperabilityAuthority), lowers each ordered sub-layer into a Skia CompositeLayer, and paints them against one shared Viewport via HeadlessCompositeRenderer — reproducing, without Mapsui, the cross-dataset draw order and depth suppression the viewer applies (e.g. the canonical S-101-under-S-102 interleave, S-98 Annex A §A-6.9.1).

public sealed class HeadlessCompositor
Inheritance
HeadlessCompositor
Inherited Members

Remarks

Coverage layers are reprojected from their grid's native CRS to WGS84 via the supplied ICrsTransformFactory (ProjNet in the facade) so they register with vector layers in the shared viewport's pixel space. Pre-projected point-glyph coverage sub-layers (S-104 / S-111 fixed-station variants) are not yet supported in the composite path and are skipped.

Constructors

HeadlessCompositor(ICrsTransformFactory, IInteroperabilityAuthority?)

Creates a compositor.

public HeadlessCompositor(ICrsTransformFactory crsTransformFactory, IInteroperabilityAuthority? authority = null)

Parameters

crsTransformFactory ICrsTransformFactory

Factory used to reproject coverage grids' native CRS extents to WGS84.

authority IInteroperabilityAuthority

The S-98 interoperability authority (ordering + rule policy). Defaults to an InteroperabilityAuthority over Default.

Methods

Prepare(IReadOnlyList<HeadlessCompositeInput>, HeadlessCompositeOptions?)

Orders, rules and lowers the supplied datasets once, returning a scene that can be painted against many viewports.

public HeadlessCompositeScene Prepare(IReadOnlyList<HeadlessCompositeInput> datasets, HeadlessCompositeOptions? options = null)

Parameters

datasets IReadOnlyList<HeadlessCompositeInput>

The datasets to composite, in draw order (bottom-most first). Each carries a vector or coverage portrayal result.

options HeadlessCompositeOptions

Composite options. Width, Height and Viewport are not used.

Returns

HeadlessCompositeScene

The prepared scene.

Render(IReadOnlyList<HeadlessCompositeInput>, HeadlessCompositeOptions?)

Composites the supplied datasets into a single bitmap.

public SKBitmap Render(IReadOnlyList<HeadlessCompositeInput> datasets, HeadlessCompositeOptions? options = null)

Parameters

datasets IReadOnlyList<HeadlessCompositeInput>

The datasets to composite, in draw order (bottom-most first). Each carries a vector or coverage portrayal result.

options HeadlessCompositeOptions

Render options (size / explicit viewport / background / mariner).

Returns

SKBitmap

A newly allocated bitmap owned by the caller.