Namespace EncDotNet.S100.Renderers.Skia.Scene
Classes
- CompositeLayer
A single renderer-neutral drawable in a headless composite. Each layer knows how to paint itself onto a canvas against a shared Viewport, so that multiple layered S-100 datasets (e.g. an S-101 ENC beneath an S-102 bathymetry surface) register pixel-for-pixel. The compositor draws layers in list order (bottom-most first), reproducing the S-98 cross-dataset draw order already resolved by the
SubLayerStackItemengine.
- CoverageCompositeLayer
A CompositeLayer that paints a styled coverage surface (colour-band fill and/or oriented arrows) via DrawOnto(SKCanvas, Viewport, StyledCoverageLayer, double, double, double, double), projecting the coverage's geographic extent into the shared viewport's pixel space.
- FinerCoverage
The data coverage of a finer chart cell that hides an overlapping coarser cell where both draw: the coarser cell's layers are clipped to exclude it, so the two don't double-draw (cross-cell scale-band overlap suppression, as the viewer applies it).
- HeadlessCompositeRenderer
Mapsui-free entry point for compositing multiple, layered S-100 datasets into a single headless bitmap. Given an explicit shared Viewport and an ordered list of CompositeLayer (bottom-most first, as resolved by the renderer-neutral S-98 ordering / suppression engine), the compositor clears the background once and draws each layer into the shared pixel space so overlaid datasets register.
- HeadlessVectorRenderer
Source-agnostic entry point for headless vector rendering: lowers any S-100 Part 9 display list (point/line/solid-area/pattern-area/text) through the shared VectorSceneBuilder and rasterises it with SkiaDisplayListRenderer, auto-fitting the viewport to the resolved scene's EPSG:3857 extent unless an explicit viewport is supplied. Works for any vector product (S-101 ISO 8211, S-12x / S-201 / S-421 GML, …) because it depends only on the encoding-agnostic DrawingInstruction / IFeatureGeometryProvider contract — not on Mapsui.
- IsolineAppearance
The look of an IsolineScene: one ink colour, a dashed line and haloed monospace labels. Sizes are device-independent pixels.
- IsolineCompositeLayer
Paints an IsolineScene into a headless composite.
- IsolinePolyline
One labelled isoline: a polyline in Web Mercator (EPSG:3857) metres.
- IsolineScene
Prepared isolines for repeated drawing in screen space: the viewer draws a scene every frame through a Mapsui style renderer, and the headless composite draws it once. Lines are dashed and labelled in screen pixels, so the dash and label spacing stay constant at every zoom. When land areas are supplied the lines are clipped to water (issue #483; R-101-104-B).
- LabelDeclutterer
Deterministic, priority-driven label declutter for the tiled subsystem's live label plane. S-100 Part 9 makes overlap avoidance the portrayal engine's responsibility (there is no per-label collision rule in a product's Portrayal Catalogue), so the render subsystem resolves it here from the drawing-priority and SCAMIN already carried on each PaintOp.
- LandLevel
One level of detail of the bundled land basemap (issue #731): the land simplified to Tolerance and cut into a GridSize×GridSize grid of LandTiles, so a renderer draws only the tiles in view. Tiles are decoded on first use.
- LandPolygon
A single land polygon of the bundled Natural Earth basemap, expressed in EPSG:3857 Web-Mercator metres. The exterior shell and any interior holes are consumed both by the vector/composite scene path (as AreaPaintOps) and by the coverage single-render path (drawn directly through its centred-fit projection). Rings are closed (the last point repeats the first).
- LandTile
One tile of a LandLevel: the land polygons clipped to a square cell of the level's grid over the single-world EPSG:3857 square. Polygons overlap neighbouring tiles slightly, so tiles drawn side by side never leave an anti-aliasing seam.
- NaturalEarthBasemap
The bundled, offline, public-domain Natural Earth 1:10m land basemap (issues #295, #411, #731) as a headless, Mapsui-free source of land geometry.
- OverlayDrawOptions
Controls for the tiled subsystem's live label/symbol overlay pass, passed to RenderOnto(SKCanvas, VectorScene, Viewport, OverlayDrawOptions). The defaults reproduce the plain overlay behaviour: draw every point and label, with no declutter suppression and no anchor rotation.
- PointGlyphCompositeLayer
Paints projected point glyphs into a shared headless composite viewport.
- SkiaDisplayListRenderer
A headless, direct-SkiaSharp renderer for the S-100 Part 9 vector intermediate representation produced by VectorSceneBuilder. Rasterises a VectorScene against a Viewport into a standalone SKBitmap — the vector analogue of SkiaCoverageRenderer, suitable for a tile-serving web API with no Mapsui / GUI dependency.
- SkiaPointGlyph
Describes one projected point glyph for Mapsui-free Skia rendering.
- VectorCompositeLayer
A CompositeLayer that paints a lowered vector VectorScene via SkiaDisplayListRenderer.
Enums
- SkiaPointGlyphSymbol
Identifies the primitive used to draw a point glyph in a headless composite.