MapLink Pro 11.1.1.0.
Envitia MapLink Pro: The Ultimate Mapping Application Toolkit
Loading...
Searching...
No Matches
TSLTrackPointSymbol Class Reference
Inheritance diagram for TSLTrackPointSymbol:

Detailed Description

A TSLTrackPointSymbol defines the rendering of a TSLTrack object, as a set of MapLink entities

A point symbol may contain multiple TSLEntities. These will be drawn in the order they are added, with the last-added on top.

Rendering attributes for a TSLTrackPointSymbol must be defined by the application when entities are added. The point symbol is otherwise treated as a single entity, which is assigned a top-level feature ID for decluttering/picking functionality.

The following Track attributes will be displayed if present within a TSLSymbol (TMF Symbol created through Symbol Studio):

  • Heading : In place of the '__TH' text object.
  • Velocity : In place of the '__TV' text object.
  • Altitude : In place of the '__TA' text object.
  • Name : In place of the '__TN' text object.

The position and attributes used for drawing these objects is specified by the symbol. These may be modified using symbol studio.

This class is reference counted internally to allow objects to be shared within the track manager SDK

  • Ownership of this object will never be transferred from the application to MapLink
  • The application must call release() in order to relinquish its ownership, even if the object has been passed to another

Classes

struct  HeadingIndicatorBand
 Defines the parameters of a heading indicator 'band'. More...
 

Public Member Functions

virtual TSLTrackSymbolclone () const
 Create a clone of this symbol.
 
virtual TSLTrackSymbol::Type type () const
 Query the type of this symbol.
 
void addSymbolEntity (const TSLEntity *entity, bool rotateToTrackHeading)
 
void updateSymbolEntity (uint32_t index, const TSLEntity *entity, bool rotateToTrackHeading)
 
void removeSymbolEntity (uint32_t index)
 
TSLEntityentityAt (uint32_t index) const
 
uint32_t numEntities () const
 
void selectionSymbol (TSLTrackSymbol *symbol, TSLTrackSymbol::SelectionBehaviour additional)
 
const TSLTrackSymbolselectionSymbol () const
 
bool rotateEntityToTrackHeading (uint32_t index) const
 
TSLTrackSymbol::SelectionBehaviour selectionBehaviour () const
 
void setHeadingRendering (const TSLRenderingAttributes &rendering)
 
const TSLRenderingAttributesgetHeadingRendering () const
 
void headingIndicatorStyle (HeadingIndicatorStyle style)
 
HeadingIndicatorStyle headingIndicatorStyle ()
 
void setHeadingIndicatorOrigin (double offsetX, double offsetY, TSLDimensionUnits offsetUnit)
 
double headingIndicatorOriginOffsetX () const
 
double headingIndicatorOriginOffsetY () const
 
TSLDimensionUnits headingIndicatorOriginOffsetUnit () const
 
void headingIndicatorAcuity (double acuity)
 
double headingIndicatorAcuity () const
 
void headingIndicatorWidth (double width, TSLDimensionUnits unit)
 
double headingIndicatorWidth () const
 
TSLDimensionUnits headingIndicatorWidthUnit () const
 
void headingIndicatorDrawOrder (bool behindTracks)
 
bool headingIndicatorDrawOrder () const
 
void addHeadingIndicatorBand (const HeadingIndicatorBand &band)
 
bool removeHeadingIndicatorBand (uint32_t index)
 
HeadingIndicatorBandheadingIndicatorBand (uint32_t index)
 
uint32_t numHeadingIndicatorBands () const
 
void clearHeadingIndicatorBands ()
 Remove all the heading indicator bands except the default band with index = 0.
 
- Public Member Functions inherited from TSLTrackSymbol
void release ()
 
double maximumResolution () const
 
void maximumResolution (double res)
 
void headingIndicatorLength (double length, TSLDimensionUnits unit)
 
void headingIndicatorVisible (bool visibility)
 
double headingIndicatorLength () const
 
TSLDimensionUnits headingIndicatorLengthUnit () const
 
bool headingIndicatorVisible () const
 

Static Public Member Functions

static TSLTrackPointSymbolcreate ()
 Create a TSLTrackPointSymbol.
 

Additional Inherited Members

- Public Types inherited from TSLTrackSymbol
enum  HeadingIndicatorStyle { HeadingIndicatorNone , HeadingIndicatorSimple , HeadingIndicatorFilled }
 Specifies the type of heading indicator to display. More...
 
enum  Type { PointSymbol , HistorySymbol }
 Specifies the type of a TSLTrackSymbol. More...
 
enum  SelectionBehaviour { SelectionBehaviourAdditional , SelectionBehaviourReplace }
 
- Protected Member Functions inherited from TSLTrackSymbol
 TSLTrackSymbol ()
 
 TSLTrackSymbol (const TSLTrackSymbol *other)
 
 TSLTrackSymbol (const TSLTrackSymbol &other)
 
TSLTrackSymboloperator= (const TSLTrackSymbol &other)
 
virtual ~TSLTrackSymbol ()
 
void operator delete (void *ptr)
 

Class Documentation

◆ TSLTrackPointSymbol::HeadingIndicatorBand

struct TSLTrackPointSymbol::HeadingIndicatorBand

Defines the parameters of a heading indicator 'band'.

Class Members
double length The heading indicator length within the speed band.
TSLDimensionUnits lengthUnit The heading indicator length unit within the speed band.
double minSpeed The minimum speed within the speed band.
uint32_t numArrowHeads The number of arrow heads within the speed band.

Member Function Documentation

◆ addHeadingIndicatorBand()

void TSLTrackPointSymbol::addHeadingIndicatorBand ( const HeadingIndicatorBand & band)

Add heading indicator band.

By default there will be a single band. This may be modified either by calling getHeadingIndicatorBand(0) or by calling headingIndicatorLength and similar methods. If the track's speed is within a speed band, the heading indicator will be displayed according to the band's parameters.

If the input band has speed <= 0, update the default band-0. If another band with the same speed already exists, update it.

Parameters
bandHeading indicator band.

◆ addSymbolEntity()

void TSLTrackPointSymbol::addSymbolEntity ( const TSLEntity * entity,
bool rotateToTrackHeading )

Add symbol entity to the parent point symbol.

The provided entity will be cloned, so the application retains ownership of this entity.

Parameters
entityThe TSLEntity to add to the point symbol.
rotateToTrackHeadingIf true entity will rotate to the track heading.

◆ clearHeadingIndicatorBands()

void TSLTrackPointSymbol::clearHeadingIndicatorBands ( )

Remove all the heading indicator bands except the default band with index = 0.

◆ clone()

virtual TSLTrackSymbol * TSLTrackPointSymbol::clone ( ) const
virtual

Create a clone of this symbol.

Implements TSLTrackSymbol.

◆ create()

static TSLTrackPointSymbol * TSLTrackPointSymbol::create ( )
static

◆ entityAt()

TSLEntity * TSLTrackPointSymbol::entityAt ( uint32_t index) const

Query the symbol entity in the parent point symbol.

Parameters
indexThe index of the symbol.
Returns
The TSLEntity of the passed index.

◆ getHeadingRendering()

const TSLRenderingAttributes & TSLTrackPointSymbol::getHeadingRendering ( ) const

Query the rendering attributes used for drawing the heading indicator.

Returns
The heading indicator rendering attributes.

◆ headingIndicatorAcuity() [1/2]

double TSLTrackPointSymbol::headingIndicatorAcuity ( ) const

Query the heading indicator acuity.

Returns
The acuity of heading indicator.

◆ headingIndicatorAcuity() [2/2]

void TSLTrackPointSymbol::headingIndicatorAcuity ( double acuity)

Set the acuity angle of the heading indicator arrow.

The acuity of an arrow head is the angle between the tail of the arrow and the inside of the arrow head

  • A low acuity will result in a flat/short arrow head
  • a high acuity will result in a pointy/long arrow head
  • This value will be clamped to the range 0.0 < acuity < 90.0
Parameters
acuityThe acuity angle in degrees, between 0.0 and 90.0

◆ headingIndicatorBand()

HeadingIndicatorBand & TSLTrackPointSymbol::headingIndicatorBand ( uint32_t index)

Access a heading indicator band

The application may modify the returned band. Extra care has to be taken if modifying the minimum speed of the default heading indicator band with index = 0.

Parameters
indexindex of the band to remove.
Returns
the heading indicator band.

◆ headingIndicatorDrawOrder() [1/2]

bool TSLTrackPointSymbol::headingIndicatorDrawOrder ( ) const

Query the point symbol's heading indicator draw order.

  • If true, the heading indicator will be displayed behind all tracks on the display
  • If false, the heading indicator will be displayed in front of all tracks on the display
Returns
The draw order of heading indicator.

◆ headingIndicatorDrawOrder() [2/2]

void TSLTrackPointSymbol::headingIndicatorDrawOrder ( bool behindTracks)

Set the heading indicator draw order.

  • If set to true, the heading indicator will be displayed behind all tracks on the display
  • If set to false, the heading indicator will be displayed in front of all tracks on the display
  • The default behaviour is to display the heading indicator behind the tracks.
Parameters
behindTracksThe draw order of heading indicator.

◆ headingIndicatorOriginOffsetUnit()

TSLDimensionUnits TSLTrackPointSymbol::headingIndicatorOriginOffsetUnit ( ) const

Query the units of the heading indicator origin

See also
headingIndicatorOriginOffsetX
headingIndicatorOriginOffsetY
Returns
The units of the heading indicator origin

◆ headingIndicatorOriginOffsetX()

double TSLTrackPointSymbol::headingIndicatorOriginOffsetX ( ) const

Query the origin of the heading indicator

Returns
The x component of the heading indicator's origin

◆ headingIndicatorOriginOffsetY()

double TSLTrackPointSymbol::headingIndicatorOriginOffsetY ( ) const

Query the origin of the heading indicator

Returns
The y component of the heading indicator's origin

◆ headingIndicatorStyle() [1/2]

HeadingIndicatorStyle TSLTrackPointSymbol::headingIndicatorStyle ( )

Query the type of the heading indicator

Returns
The heading indicator style.

◆ headingIndicatorStyle() [2/2]

void TSLTrackPointSymbol::headingIndicatorStyle ( HeadingIndicatorStyle style)

Set the type of heading indicator to display

Parameters
styleThe style used for drawing the heading indicator.

◆ headingIndicatorWidth() [1/2]

double TSLTrackPointSymbol::headingIndicatorWidth ( ) const

Query the heading indicator width.

Returns
The width of heading indicator.

◆ headingIndicatorWidth() [2/2]

void TSLTrackPointSymbol::headingIndicatorWidth ( double width,
TSLDimensionUnits unit )

Set the heading indicator width.

  • If width is set to 0, the heading indicator will be displayed as line.
  • If width is more than 0, the heading indicator will be displayed as polygon.
  • The default behaviour is to display the heading indicator as line.
Parameters
widthThe width of heading indicator.
unitThe units of the heading indicator width.

◆ headingIndicatorWidthUnit()

TSLDimensionUnits TSLTrackPointSymbol::headingIndicatorWidthUnit ( ) const

Query the units of the heading indicator width

Returns
The Units of the heading indicator's width

◆ numEntities()

uint32_t TSLTrackPointSymbol::numEntities ( ) const

Query the number of entities within the point symbol.

Returns
The number of entities the TSLTrackPointSymbol is composed of.

◆ numHeadingIndicatorBands()

uint32_t TSLTrackPointSymbol::numHeadingIndicatorBands ( ) const

Query the number of the heading indicator bands.

Returns
The number of heading indicator bands.

◆ removeHeadingIndicatorBand()

bool TSLTrackPointSymbol::removeHeadingIndicatorBand ( uint32_t index)

Remove a heading indicator band.

The default band-0 can't be removed.So, if input index is 0, the method will do nothing and return false. If the input index is more than the number of bands, the method will do nothing and return false.

Parameters
indexindex of the band to remove.
Returns
true if speed band is removed successfully, false otherwise.

◆ removeSymbolEntity()

void TSLTrackPointSymbol::removeSymbolEntity ( uint32_t index)

Remove symbol entity in the parent point symbol.

Parameters
indexThe index of the symbol.

◆ rotateEntityToTrackHeading()

bool TSLTrackPointSymbol::rotateEntityToTrackHeading ( uint32_t index) const

Query whether the entity will rotate to the track heading.

Parameters
indexThe index of the symbol.
Returns
true if the entity will rotate, false otherwise.

◆ selectionBehaviour()

TSLTrackSymbol::SelectionBehaviour TSLTrackPointSymbol::selectionBehaviour ( ) const

Query the selection symbol.

Returns
The selection behaviour

◆ selectionSymbol() [1/2]

const TSLTrackSymbol * TSLTrackPointSymbol::selectionSymbol ( ) const

This object is owned by the TSLTrackPointSymbol, and must not be modified.

Returns
The selection TSLTrackSymbol associated with this Symbol.

◆ selectionSymbol() [2/2]

void TSLTrackPointSymbol::selectionSymbol ( TSLTrackSymbol * symbol,
TSLTrackSymbol::SelectionBehaviour additional )

Set the selection symbol.

Parameters
symbolThe TSLTrackSymbol to display.
behaviourSpecifies how the selection symbol should be displayed.

◆ setHeadingIndicatorOrigin()

void TSLTrackPointSymbol::setHeadingIndicatorOrigin ( double offsetX,
double offsetY,
TSLDimensionUnits offsetUnit )

Set the origin for the heading indicator

This is specified as an offset from the track's position. When an offset is set a line will be drawn from the track's position to the heading indicator's origin The heading indicator will then be drawn from the origin based on the track's heading/other indicator parameters

Parameters
offsetXThe origin offset x
offsetYThe origin offset Y
offsetUnitsThe units of the origin

◆ setHeadingRendering()

void TSLTrackPointSymbol::setHeadingRendering ( const TSLRenderingAttributes & rendering)

Set the rendering attributes used when drawing the heading indicator.

The heading indicator will be drawn as polyline, polygons, or both depending on:

  • The style of the heading indicator: Filled arrowheads will be polygons, otherwise polylines
  • The width of the heading indicator: If width == 0 a polyline will be drawn, otherwise a polygon

Applications should provide rendering attributes for both polylines and polygons.

See also
headingIndicatorStyle
headingIndicatorWidth
Parameters
renderingThe rendering attributes to use for drawing the heading indicator.

◆ type()

virtual TSLTrackSymbol::Type TSLTrackPointSymbol::type ( ) const
virtual

Query the type of this symbol.

Implements TSLTrackSymbol.

◆ updateSymbolEntity()

void TSLTrackPointSymbol::updateSymbolEntity ( uint32_t index,
const TSLEntity * entity,
bool rotateToTrackHeading )

Update symbol entity in the parent point symbol.

The provided entity will be cloned, so the application retains ownership of this entity.

Parameters
indexThe index of the symbol.
entityThe TSLEntity to use as a replacement
rotateToTrackHeadingIf true entity will rotate to the track heading.