Table of Contents

Struct PolylineStore.Segment

Namespace
LansMap.Core.Vector

One line segment in chain-unwrapped normalized mercator, consumed by the GPU line layer.

public struct PolylineStore.Segment
Inherited Members

Fields

AltA

Endpoint altitudes in normalized mercator, same units as MaxAltitudeMercator.

public float AltA

Field Value

float

AltB

Endpoint altitudes in normalized mercator, same units as MaxAltitudeMercator.

public float AltB

Field Value

float

Ax

Endpoints in chain-unwrapped normalized mercator. A seam-crossing line may place X outside [0, 1).

public double Ax

Field Value

double

Ay

Endpoints in chain-unwrapped normalized mercator. A seam-crossing line may place X outside [0, 1).

public double Ay

Field Value

double

Bx

Endpoints in chain-unwrapped normalized mercator. A seam-crossing line may place X outside [0, 1).

public double Bx

Field Value

double

By

Endpoints in chain-unwrapped normalized mercator. A seam-crossing line may place X outside [0, 1).

public double By

Field Value

double

ColorRgba

Stroke color as packed RGBA.

public uint ColorRgba

Field Value

uint

CornerRadiusRatio

Corner radius of joins and caps as a fraction of the half width; see SetLineCornerRadiusRatio(int, float).

public float CornerRadiusRatio

Field Value

float

DashPeriodMercator

Dash plus gap length in normalized mercator; 0 when solid or screen-dashed.

public float DashPeriodMercator

Field Value

float

DashPeriodPx

Dash plus gap length in screen px; 0 draws solid.

public float DashPeriodPx

Field Value

float

DashPitchInvariant

True when a screen-px dash pattern ignores pitch; no effect while ground-locked or solid.

public bool DashPitchInvariant

Field Value

bool

DistMercA

Chain-unwrapped mercator path length from the line's first vertex to endpoint A, ground distance only (altitude excluded). Double per the mercator-is-double rule; the GPU layer narrows it to float on upload.

public double DistMercA

Field Value

double

Flat

True when the ribbon lies in the ground plane; see SetLineFlat(int, bool).

public bool Flat

Field Value

bool

NextSlotOffset

Slot offset of the segment that starts at this segment's B, relative to this slot; 0 when B ends the line (a cap).

public int NextSlotOffset

Field Value

int

PrevSlotOffset

Slot offset of the segment that ends at this segment's A, relative to this slot; 0 when A starts the line (a cap).

public int PrevSlotOffset

Field Value

int

WidthPx

Stroke width in screen px; zero marks a removed slot.

public float WidthPx

Field Value

float

Properties

PackedDashPeriod

The dash period as the GPU reads it: positive is screen px, negative is normalized mercator, 0 draws solid.

public float PackedDashPeriod { get; }

Property Value

float

PackedDistMercA

The dash-phase distance as the GPU reads it: PhaseDistMercA with a negative sign bit marking a flat segment, negative zero included.

public double PackedDistMercA { get; }

Property Value

double

PackedWidthPx

The width as the GPU reads it: negative marks a screen-dashed, pitch-invariant live segment; 0 hides. Never negative on a flat segment - a flat line's width already foreshortens with the ground, so a dash that additionally ignored pitch would be inconsistent with that.

public float PackedWidthPx { get; }

Property Value

float

PhaseDistMercA

The distance the GPU reads for dash phase: DistMercA reduced modulo a ground-locked period, so a long trail keeps full float phase precision; unchanged when solid or screen-dashed.

public double PhaseDistMercA { get; }

Property Value

double