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

#include <QGCMapPolyline.h>

+ Inheritance diagram for QGCMapPolyline:
+ Collaboration diagram for QGCMapPolyline:

Signals

void countChanged (int count)
 
void pathChanged (void)
 
void dragPathChanged (void)
 
void dirtyChanged (bool dirty)
 
void cleared (void)
 
void interactiveChanged (bool interactive)
 
void vertexDragChanged (bool vertexDrag)
 
void isValidChanged (void)
 
void isEmptyChanged (void)
 
void traceModeChanged (bool traceMode)
 
void selectedVertexChanged (int index)
 

Public Member Functions

 QGCMapPolyline (QObject *parent=nullptr)
 
 QGCMapPolyline (const QGCMapPolyline &other, QObject *parent=nullptr)
 
 ~QGCMapPolyline () override
 
const QGCMapPolylineoperator= (const QGCMapPolyline &other)
 
Q_INVOKABLE void clear (void)
 
Q_INVOKABLE void appendVertex (const QGeoCoordinate &coordinate)
 
Q_INVOKABLE void removeVertex (int vertexIndex)
 
Q_INVOKABLE void appendVertices (const QList< QGeoCoordinate > &coordinates)
 
Q_INVOKABLE void adjustVertex (int vertexIndex, const QGeoCoordinate coordinate)
 
Q_INVOKABLE void splitSegment (int vertexIndex)
 Splits the line segment comprised of vertexIndex -> vertexIndex + 1.
 
QList< QGeoCoordinate > offsetPolyline (double distance)
 
Q_INVOKABLE bool loadKMLOrSHPFile (const QString &file)
 
Q_INVOKABLE void beginReset (void)
 
Q_INVOKABLE void endReset (void)
 
QList< QGeoCoordinate > coordinateList (void) const
 Returns the path in a list of QGeoCoordinate's format.
 
Q_INVOKABLE QGeoCoordinate vertexCoordinate (int vertex) const
 Returns the QGeoCoordinate for the vertex specified.
 
void saveToJson (QJsonObject &json)
 
bool loadFromJson (const QJsonObject &json, bool required, QString &errorString)
 
QList< QPointF > nedPolyline (void)
 Convert polyline to NED and return (D is ignored)
 
double length (void) const
 Returns the length of the polyline in meters.
 
int count (void) const
 
bool dirty (void) const
 
void setDirty (bool dirty)
 
bool interactive (void) const
 
bool vertexDrag (void) const
 
QVariantList path (void) const
 
bool isValid (void) const
 
bool empty (void) const
 
bool traceMode (void) const
 
int selectedVertex () const
 
QmlObjectListModelqmlPathModel (void)
 
QmlObjectListModelpathModel (void)
 
void setPath (const QList< QGeoCoordinate > &path)
 
void setPath (const QVariantList &path)
 
void setInteractive (bool interactive)
 
void setVertexDrag (bool vertexDrag)
 
void setTraceMode (bool traceMode)
 
void selectVertex (int index)
 

Static Public Attributes

static constexpr const char * jsonPolylineKey = "polyline"
 

Detailed Description

Definition at line 9 of file QGCMapPolyline.h.

Constructor & Destructor Documentation

◆ QGCMapPolyline() [1/2]

QGCMapPolyline::QGCMapPolyline ( QObject *  parent = nullptr)

Definition at line 16 of file QGCMapPolyline.cc.

◆ QGCMapPolyline() [2/2]

QGCMapPolyline::QGCMapPolyline ( const QGCMapPolyline other,
QObject *  parent = nullptr 
)

Definition at line 24 of file QGCMapPolyline.cc.

◆ ~QGCMapPolyline()

QGCMapPolyline::~QGCMapPolyline ( )
override

Definition at line 34 of file QGCMapPolyline.cc.

References pathChanged(), and qgcApp.

Member Function Documentation

◆ adjustVertex()

void QGCMapPolyline::adjustVertex ( int  vertexIndex,
const QGeoCoordinate  coordinate 
)

Adjust the value for the specified coordinate

Parameters
vertexIndexPolygon point index to modify (0-based)
coordinateNew coordinate for point

Definition at line 77 of file QGCMapPolyline.cc.

References dragPathChanged(), pathChanged(), setDirty(), and QmlObjectListModel::value().

◆ appendVertex()

void QGCMapPolyline::appendVertex ( const QGeoCoordinate &  coordinate)

Definition at line 235 of file QGCMapPolyline.cc.

References QmlObjectListModel::append(), and pathChanged().

Referenced by operator=(), and splitSegment().

◆ appendVertices()

void QGCMapPolyline::appendVertices ( const QList< QGeoCoordinate > &  coordinates)

Definition at line 424 of file QGCMapPolyline.cc.

References QmlObjectListModel::append(), beginReset(), endReset(), and pathChanged().

Referenced by loadKMLOrSHPFile().

◆ beginReset()

void QGCMapPolyline::beginReset ( void  )

◆ clear()

void QGCMapPolyline::clear ( void  )

◆ cleared

void QGCMapPolyline::cleared ( void  )
signal

Referenced by clear().

◆ coordinateList()

QList< QGeoCoordinate > QGCMapPolyline::coordinateList ( void  ) const

Returns the path in a list of QGeoCoordinate's format.

Definition at line 201 of file QGCMapPolyline.cc.

Referenced by CorridorScanComplexItem::setCoordinate().

◆ count()

int QGCMapPolyline::count ( void  ) const
inline

◆ countChanged

void QGCMapPolyline::countChanged ( int  count)
signal

◆ dirty()

bool QGCMapPolyline::dirty ( void  ) const
inline

Definition at line 82 of file QGCMapPolyline.h.

Referenced by setDirty().

◆ dirtyChanged

void QGCMapPolyline::dirtyChanged ( bool  dirty)
signal

◆ dragPathChanged

void QGCMapPolyline::dragPathChanged ( void  )
signal

Referenced by adjustVertex().

◆ empty()

bool QGCMapPolyline::empty ( void  ) const
inline

Definition at line 88 of file QGCMapPolyline.h.

References QmlObjectListModel::count().

◆ endReset()

void QGCMapPolyline::endReset ( void  )

◆ interactive()

bool QGCMapPolyline::interactive ( void  ) const
inline

Definition at line 84 of file QGCMapPolyline.h.

Referenced by setInteractive().

◆ interactiveChanged

void QGCMapPolyline::interactiveChanged ( bool  interactive)
signal

Referenced by setInteractive().

◆ isEmptyChanged

void QGCMapPolyline::isEmptyChanged ( void  )
signal

◆ isValid()

bool QGCMapPolyline::isValid ( void  ) const
inline

Definition at line 87 of file QGCMapPolyline.h.

References QmlObjectListModel::count().

◆ isValidChanged

void QGCMapPolyline::isValidChanged ( void  )
signal

◆ length()

double QGCMapPolyline::length ( void  ) const

Returns the length of the polyline in meters.

Definition at line 411 of file QGCMapPolyline.cc.

References length().

Referenced by length().

◆ loadFromJson()

bool QGCMapPolyline::loadFromJson ( const QJsonObject &  json,
bool  required,
QString &  errorString 
)

Load a polyline from json

Parameters
jsonJson object to load from
requiredtrue: no polygon in object will generate error
errorStringError string if return is false
Returns
true: success, false: failure (errorString set)

Definition at line 174 of file QGCMapPolyline.cc.

References QmlObjectListModel::append(), clear(), errorString, jsonPolylineKey, GeoJsonHelper::loadGeoCoordinateArray(), pathChanged(), setDirty(), and JsonParsing::validateRequiredKeys().

◆ loadKMLOrSHPFile()

bool QGCMapPolyline::loadKMLOrSHPFile ( const QString &  file)

Loads a polyline from a KML/SHP file

Returns
true: success

Definition at line 376 of file QGCMapPolyline.cc.

References appendVertices(), beginReset(), clear(), endReset(), errorString, ShapeFileHelper::loadPolylinesFromFile(), and QGC::showAppMessage().

◆ nedPolyline()

QList< QPointF > QGCMapPolyline::nedPolyline ( void  )

Convert polyline to NED and return (D is ignored)

Definition at line 296 of file QGCMapPolyline.cc.

References QGCGeo::convertGeoToNed(), count(), nedPolyline(), and vertexCoordinate().

Referenced by nedPolyline(), and offsetPolyline().

◆ offsetPolyline()

QList< QGeoCoordinate > QGCMapPolyline::offsetPolyline ( double  distance)

Offsets the current polyline edges by the specified distance in meters

Returns
Offset set of vertices

Definition at line 319 of file QGCMapPolyline.cc.

References QGCGeo::convertNedToGeo(), count(), nedPolyline(), and vertexCoordinate().

◆ operator=()

const QGCMapPolyline & QGCMapPolyline::operator= ( const QGCMapPolyline other)

Definition at line 39 of file QGCMapPolyline.cc.

References appendVertex(), clear(), path(), and setDirty().

◆ path()

QVariantList QGCMapPolyline::path ( void  ) const
inline

Definition at line 86 of file QGCMapPolyline.h.

Referenced by operator=(), setPath(), and setPath().

◆ pathChanged

◆ pathModel()

QmlObjectListModel & QGCMapPolyline::pathModel ( void  )
inline

Definition at line 93 of file QGCMapPolyline.h.

◆ qmlPathModel()

QmlObjectListModel * QGCMapPolyline::qmlPathModel ( void  )
inline

Definition at line 92 of file QGCMapPolyline.h.

◆ removeVertex()

void QGCMapPolyline::removeVertex ( int  vertexIndex)

Definition at line 242 of file QGCMapPolyline.cc.

References pathChanged(), QmlObjectListModel::removeAt(), and selectVertex().

◆ saveToJson()

void QGCMapPolyline::saveToJson ( QJsonObject &  json)

Saves the polyline to the json object.

Parameters
jsonJson object to save to

Definition at line 165 of file QGCMapPolyline.cc.

References jsonPolylineKey, GeoJsonHelper::saveGeoCoordinateArray(), and setDirty().

◆ selectedVertex()

int QGCMapPolyline::selectedVertex ( ) const
inline

Definition at line 90 of file QGCMapPolyline.h.

◆ selectedVertexChanged

void QGCMapPolyline::selectedVertexChanged ( int  index)
signal

Referenced by selectVertex().

◆ selectVertex()

void QGCMapPolyline::selectVertex ( int  index)

Definition at line 458 of file QGCMapPolyline.cc.

References count(), and selectedVertexChanged().

Referenced by removeVertex().

◆ setDirty()

void QGCMapPolyline::setDirty ( bool  dirty)

◆ setInteractive()

void QGCMapPolyline::setInteractive ( bool  interactive)

Definition at line 266 of file QGCMapPolyline.cc.

References interactive(), and interactiveChanged().

◆ setPath() [1/2]

void QGCMapPolyline::setPath ( const QList< QGeoCoordinate > &  path)

◆ setPath() [2/2]

void QGCMapPolyline::setPath ( const QVariantList &  path)

◆ setTraceMode()

void QGCMapPolyline::setTraceMode ( bool  traceMode)

Definition at line 450 of file QGCMapPolyline.cc.

References traceMode(), and traceModeChanged().

◆ setVertexDrag()

void QGCMapPolyline::setVertexDrag ( bool  vertexDrag)

Definition at line 274 of file QGCMapPolyline.cc.

References pathChanged(), vertexDrag(), and vertexDragChanged().

◆ splitSegment()

void QGCMapPolyline::splitSegment ( int  vertexIndex)

Splits the line segment comprised of vertexIndex -> vertexIndex + 1.

Definition at line 212 of file QGCMapPolyline.cc.

References appendVertex(), QmlObjectListModel::insert(), and pathChanged().

◆ traceMode()

bool QGCMapPolyline::traceMode ( void  ) const
inline

Definition at line 89 of file QGCMapPolyline.h.

Referenced by setTraceMode().

◆ traceModeChanged

void QGCMapPolyline::traceModeChanged ( bool  traceMode)
signal

◆ vertexCoordinate()

QGeoCoordinate QGCMapPolyline::vertexCoordinate ( int  vertex) const

Returns the QGeoCoordinate for the vertex specified.

Definition at line 286 of file QGCMapPolyline.cc.

Referenced by nedPolyline(), and offsetPolyline().

◆ vertexDrag()

bool QGCMapPolyline::vertexDrag ( void  ) const
inline

Definition at line 85 of file QGCMapPolyline.h.

Referenced by setVertexDrag().

◆ vertexDragChanged

void QGCMapPolyline::vertexDragChanged ( bool  vertexDrag)
signal

Referenced by setVertexDrag().

Member Data Documentation

◆ jsonPolylineKey

constexpr const char* QGCMapPolyline::jsonPolylineKey = "polyline"
staticconstexpr

Definition at line 102 of file QGCMapPolyline.h.

Referenced by loadFromJson(), and saveToJson().


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