GeoPathTrail

Description

sealed class Tinman.Engine.Scenes.Entities.GeoPathTrail

A scene entity that generates a 3D model for a geo path.

The geo path model is built as follows (top-down view):

x-----x---------x---------x---------x---------x-----x   \
|     |                                       |     |   |
|     |                                       |     |   |
z     o         o         o         o         o     z   | width
|     |                                       |     |   |
|     |                                       |     |   |
x-----x---------x---------x---------x---------x-----x   /
\_____/         \_________/                   \_____/
 start            segment                       end

where x are the generated vertices (perpendicular to geo path direction and up-vector), o are the uniformly-distributed interpolated geo path samples and z are the interpolated geo path samples at the start / end of the trail. The input geo path data is specified via these properties:

The visual appearance of the geo path model can be controlled with the following properties:

Use Capacity to control the size of the model geometry buffer (and thus the GPU buffer size) and Segments to query the actual number of used segments.

Public / Constructors

Geo​Path​Trail


public constructor GeoPathTrail → (1)

entityViewMask opt : int64 = ~0

The value for IEntityViewMask.EntityViewMask.

Creates a new instance of GeoPathTrail.

Public / Attributes

Capacity


public attribute Capacity → (get,set)

value : int32

[>=0]
The maximum number of segments.

The capacity of the GPU buffer for the geo path trail, given in segments.

If the number of required segments is greater than the capacity, the smallest multiple of TimestampStep will be used for which the number of required segments is less than or equal to the capacity. Defaults to 1000, which results in a geo path trail length covering 100 second for the default value of TimestampStep.

Path


public attribute Path → (get,set)

value : IGeoPathBase

The geo path or null for none.

The geo path for which to generate the 3D model.

The IGeoPathBase.LatLonHeightOn and IGeoPathBase.YawPitchRollOn methods are used to get path samples. From those, the geo path trail will be constructed. If IGeoPathBase.Vertical is GeoPathValue.Height, then VerticalType.HeightMesh will be used to avoid blocking the application thread with heightmap accesses.

Defaults to null.

Segments


public attribute Segments → (get)

value : int32

[0..]
The number of used segments.

The number of segments that are used for the current geo path trail.

Timestamp​Origin


public attribute TimestampOrigin → (get,set)

value : float64

The timestamp origin value.

The timestamp origin to use for choosing the time indices for interpolation of geo path samples.

The current geo path (see Path) is sampled at all Timestamp values (see below) that are contained in the effective timestamp range, i.e. the intersection of the ITimestampRangeProperty.TimestampRange of this GeoPathTrail and the ITimestampRangeProvider.TimestampRange of the current geo path.

Timestamp = TimestampOrigin + N * TimestampStep

For RangeD.Start and RangeD.End of the effective timestamp range, additional geo path samples are computed, if there are no equivalent Timestamp samples. The geo path samples and the resulting 3D model geometry are cached and updated incrementally, if possible. Typically, the following uses will result in incremental updates:

Other uses may require a full update, which in turn may degrade runtime performance when triggered often. Defaults to 0.

Timestamp​Step


public attribute TimestampStep → (get,set)

value : float64

[>=0]
The timestamp step (see GeoPathSample.Timestamp).

The timestamp step between geo path trail segments, in milli-seconds.

Defaults to 100 ms.