GeoPathTrack

Description

sealed class Tinman.Engine.Scenes.Entities.GeoPathTrack

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

The geo path model is built as follows (side view):

       __,----.__                     _
    __/          \                   / `o <-- geo path track
o--ยด              \        _,-----._/   |
|                  `---.__/             |
|    ^                                  |
-----|----------------------------------- <-- ground
     |
geo path curtain

The geo path track is a line strip that follows the original geo path samples. The geo path curtain is a triangle strip that visualizes vertical planes from the geo path track down to the ground. The visual appearance of the geo path model can be controlled with the following properties:

The IGeoPathBase.LatLonHeightOn method is used to get path samples. From those, the geo path track is constructed in a background thread (see GeoPathEntity.IsReady), which can be configured with these properties:

Public / Constructors

Geo­Path­Track


public constructor GeoPathTrack → (1)

entityViewMask opt : int64 = ~0

The value for IEntityViewMask.EntityViewMask.

Creates a new instance of GeoPathTrack.

Public / Methods

Update­Model


public method UpdateModel → ()

Triggers an update to the 3D model of the geo path track.

Usually, the 3D model of the geo path track is updated automatically, for example by modifying the properties of this object. This method may be used to trigger an update, if a change has been made outside of the scope of this class, for example after adding a new geo path sample.

Public / Attributes

Closed


public attribute Closed → (get,set)

value : bool

true to close the curtain with vertical lines,
false to leave the curtain sides open.

Use vertical lines to close the curtain of the geo path track at both ends?

Defaults to true.

Dynamic


public attribute Dynamic → (get,set)

value : float64

[>=0]
The maximum number of milliseconds between the end of the timestamp range of the most recently computed geo path track and the end of ITimestampRangeProperty.TimestampRange.

Use dynamic model geometry and fix the gap at the end of the geo path track by adjusting the positions of trailing vertices?

When ITimestampRangeProperty.TimestampRange is updated periodically (for example, while building a geo path incrementally by calling ICollector.Add), the geo path track can become outdated. This creates a gap between the end of the geo path track and the end of the updated timestamp range. By setting this property to a non-zero value, the gap is filled with dynamic geometry.

This property is intended to be used for fixing small gaps, using few dynamic vertices. If this is not sufficient, a separate GeoPathTrail can be used to fill the gap (see TimestampRangeFix).

Defaults to 0, which disables gap fixing.

Maximum­Error


public attribute MaximumError → (get,set)

value : float64

[>=0]
The accuracy, see GeoPathTessellator.MaximumError.

The accuracy for building the geo path tessellation.

Defaults to 0.

Maximum­Segments


public attribute MaximumSegments → (get,set)

value : int32

[>0]
The maximum number of segments, see GeoPathTessellator.MaximumSegments.

The maximum allowed number of path segments.

Defaults to 65536.

Timestamp­Range­Fix


public attribute TimestampRangeFix → (get)

value : RangeD

The gap range or RangeD.Inv if none.

Returns the timestamp range of the gap that needs fixing.

The gap is the range from the end of the current geo path track to the end of the current timestamp range.

Update­Model­Delay


public attribute UpdateModelDelay → (get,set)

value : int32

[>=0]
If zero, VerticalType.Height will be used and the resulting 3D model will be invariant to changes in the terrain tessellation. Otherwise, VerticalType.HeightMesh will be used to compute the 3D model repeatedly. Computation is triggered by changes to the terrain tessellation (see IVersioned.Version of TerrainMesh.Mesh), and by calls to UpdateModel. The minimum delay (in milli-seconds) between computations is defined by this property.

Chooses the mode of computing the 3D model of the geo path track, if the geo path uses GeoPathValue.Height.

If the geo path does not use GeoPathValue.Height, this property is ignored and has no effect.

Defaults to 0.

Update­Model­Discard


public attribute UpdateModelDiscard → (get,set)

value : bool

true to discard the current 3D model before starting the background computation of the new one,
false to keep the current 3D model until background computation has finished.

Discard the current 3D model of the geo path track while computing a new one?

Defaults to false.

Logging

Logger


public static readonly attribute Logger → (ILogger)

The logger object of this class.