QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
GeoMapSpriteLayer Class Reference

#include <GeoMapSpriteLayer.h>

+ Inheritance diagram for GeoMapSpriteLayer:
+ Collaboration diagram for GeoMapSpriteLayer:

Signals

void sceneChanged ()
 
void surfaceModelChanged ()
 
void modelChanged ()
 
void coordinatesChanged ()
 
void spriteChanged ()
 
void spriteSizeChanged ()
 

Public Member Functions

 GeoMapSpriteLayer (QQuickItem *parent=nullptr)
 
GeoScene * scene () const
 
void setScene (GeoScene *scene)
 
SurfacePatchModel * surfaceModel () const
 
void setSurfaceModel (SurfacePatchModel *surfaceModel)
 
QAbstractItemModel * model () const
 
void setModel (QAbstractItemModel *model)
 
QVariantList coordinates () const
 Coordinate list alternative to model (model takes precedence when set)
 
void setCoordinates (const QVariantList &coordinates)
 
QQuickItem * sprite () const
 
void setSprite (QQuickItem *sprite)
 
qreal spriteSize () const
 On-screen sprite width/height in (logical) pixels.
 
void setSpriteSize (qreal spriteSize)
 

Protected Member Functions

QSGNode * updatePaintNode (QSGNode *oldNode, UpdatePaintNodeData *updatePaintNodeData) override
 

Detailed Description

Batched screen-space marker layer: renders one identical sprite per model row as a single scene-graph geometry node (one draw call, no per-marker QObjects). Use instead of a Repeater of GeoMapItems for high-count marker types (e.g. camera trigger points).

The model must expose a QObject per row at Qt::UserRole (QmlObjectListModel contract) with a QGeoCoordinate "coordinate" property; alternatively set coordinates to a plain list of QGeoCoordinates. Markers clamp to the rendered terrain surface and are center-anchored at spriteSize pixels square, in both 2D and 3D camera modes. sprite must be a texture provider (an Item with layer.enabled or a ShaderEffectSource).

Definition at line 40 of file GeoMapSpriteLayer.h.

Constructor & Destructor Documentation

◆ GeoMapSpriteLayer()

GeoMapSpriteLayer::GeoMapSpriteLayer ( QQuickItem *  parent = nullptr)
explicit

Definition at line 27 of file GeoMapSpriteLayer.cc.

Member Function Documentation

◆ coordinates()

QVariantList GeoMapSpriteLayer::coordinates ( ) const
inline

Coordinate list alternative to model (model takes precedence when set)

Definition at line 67 of file GeoMapSpriteLayer.h.

Referenced by setCoordinates().

◆ coordinatesChanged

void GeoMapSpriteLayer::coordinatesChanged ( )
signal

Referenced by setCoordinates().

◆ model()

QAbstractItemModel * GeoMapSpriteLayer::model ( ) const
inline

Definition at line 62 of file GeoMapSpriteLayer.h.

Referenced by setModel().

◆ modelChanged

void GeoMapSpriteLayer::modelChanged ( )
signal

Referenced by setModel().

◆ scene()

GeoScene * GeoMapSpriteLayer::scene ( ) const
inline

Definition at line 54 of file GeoMapSpriteLayer.h.

Referenced by setScene().

◆ sceneChanged

void GeoMapSpriteLayer::sceneChanged ( )
signal

Referenced by setScene().

◆ setCoordinates()

void GeoMapSpriteLayer::setCoordinates ( const QVariantList &  coordinates)

Definition at line 107 of file GeoMapSpriteLayer.cc.

References coordinates(), and coordinatesChanged().

◆ setModel()

void GeoMapSpriteLayer::setModel ( QAbstractItemModel *  model)

Definition at line 81 of file GeoMapSpriteLayer.cc.

References model(), and modelChanged().

◆ setScene()

void GeoMapSpriteLayer::setScene ( GeoScene *  scene)

◆ setSprite()

void GeoMapSpriteLayer::setSprite ( QQuickItem *  sprite)

Definition at line 117 of file GeoMapSpriteLayer.cc.

References sprite(), and spriteChanged().

◆ setSpriteSize()

void GeoMapSpriteLayer::setSpriteSize ( qreal  spriteSize)

Definition at line 138 of file GeoMapSpriteLayer.cc.

References spriteSize(), and spriteSizeChanged().

◆ setSurfaceModel()

void GeoMapSpriteLayer::setSurfaceModel ( SurfacePatchModel *  surfaceModel)

◆ sprite()

QQuickItem * GeoMapSpriteLayer::sprite ( ) const
inline

Definition at line 71 of file GeoMapSpriteLayer.h.

Referenced by setSprite().

◆ spriteChanged

void GeoMapSpriteLayer::spriteChanged ( )
signal

Referenced by setSprite().

◆ spriteSize()

qreal GeoMapSpriteLayer::spriteSize ( ) const
inline

On-screen sprite width/height in (logical) pixels.

Definition at line 76 of file GeoMapSpriteLayer.h.

Referenced by setSpriteSize().

◆ spriteSizeChanged

void GeoMapSpriteLayer::spriteSizeChanged ( )
signal

Referenced by setSpriteSize().

◆ surfaceModel()

SurfacePatchModel * GeoMapSpriteLayer::surfaceModel ( ) const
inline

Definition at line 58 of file GeoMapSpriteLayer.h.

Referenced by setSurfaceModel().

◆ surfaceModelChanged

void GeoMapSpriteLayer::surfaceModelChanged ( )
signal

Referenced by setSurfaceModel().

◆ updatePaintNode()

QSGNode * GeoMapSpriteLayer::updatePaintNode ( QSGNode *  oldNode,
UpdatePaintNodeData *  updatePaintNodeData 
)
overrideprotected

The documentation for this class was generated from the following files: