Table of Contents

Class S57ArcCurve

Namespace
EncDotNet.S57
Assembly
EncDotNet.S57.dll

Represents an arc/curve definition (ARCC) of an edge vector record, with the coordinate fields that follow it (S-57 Part 3, clauses 5.1.4.4 and 7.7.1.8 to 7.7.1.11).

public sealed record S57ArcCurve : IEquatable<S57ArcCurve>
Inheritance
S57ArcCurve
Implements
Inherited Members

Remarks

An edge's coordinates are given either by SG2D or by one or more ARCC fields; the two are mutually exclusive. The Type says which coordinate field the definition uses: AR2D (Arcs) for ArcThreePointCentre, EL2D (EllipticalArcs) for EllipticalArc, and CT2D (ControlPoints) for the curve types.

Use S57ArcDensifier to turn the definition into a polyline.

Properties

Arcs

Gets the arcs from the AR2D fields that follow the definition.

public IReadOnlyList<S57Arc> Arcs { get; init; }

Property Value

IReadOnlyList<S57Arc>

ControlPoints

Gets the curve control points from the CT2D fields that follow the definition.

public IReadOnlyList<S57Coordinate2D> ControlPoints { get; init; }

Property Value

IReadOnlyList<S57Coordinate2D>

Remarks

When the reader finds AR2D or EL2D coordinates that don't make a whole arc, as in an update record whose SGCC field addresses single coordinates, it keeps them here, in order.

EllipticalArcs

Gets the elliptical arcs from the EL2D fields that follow the definition.

public IReadOnlyList<S57EllipticalArc> EllipticalArcs { get; init; }

Property Value

IReadOnlyList<S57EllipticalArc>

FloatingPointMultiplicationFactor

Gets the floating point multiplication factor (FPMF) of Resolution.

public long FloatingPointMultiplicationFactor { get; init; }

Property Value

long

InterpolatedPointResolution

Gets the spacing between interpolated points along the line, in map units (millimetres), or null when FloatingPointMultiplicationFactor is 0.

public double? InterpolatedPointResolution { get; }

Property Value

double?

Order

Gets the curve order (ORDR): the largest exponent of the polynomial, from 1 to 9.

public int Order { get; init; }

Property Value

int

Resolution

Gets the interpolated point resolution (RESO) as encoded: an integer to divide by FloatingPointMultiplicationFactor.

public long Resolution { get; init; }

Property Value

long
See Also

Surface

Gets the construction surface (SURF).

public S57ConstructionSurface Surface { get; init; }

Property Value

S57ConstructionSurface

Type

Gets the arc/curve type (ATYP).

public S57ArcCurveType Type { get; init; }

Property Value

S57ArcCurveType