Class S57ArcCurve
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
ControlPoints
Gets the curve control points from the CT2D fields that follow the definition.
public IReadOnlyList<S57Coordinate2D> ControlPoints { get; init; }
Property Value
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
FloatingPointMultiplicationFactor
Gets the floating point multiplication factor (FPMF) of Resolution.
public long FloatingPointMultiplicationFactor { get; init; }
Property Value
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
Order
Gets the curve order (ORDR): the largest exponent of the polynomial, from 1 to 9.
public int Order { get; init; }
Property Value
Resolution
Gets the interpolated point resolution (RESO) as encoded: an integer to divide by FloatingPointMultiplicationFactor.
public long Resolution { get; init; }
Property Value
- See Also
Surface
Gets the construction surface (SURF).
public S57ConstructionSurface Surface { get; init; }
Property Value
Type
Gets the arc/curve type (ATYP).
public S57ArcCurveType Type { get; init; }