Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
05c2790f
Commit
05c2790f
authored
5 years ago
by
Valentin Platzgummer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adding
parent
d29b8b03
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
661 additions
and
139 deletions
+661
-139
qgroundcontrol.pro
qgroundcontrol.pro
+12
-5
WimaArea.cc
src/Wima/WimaArea.cc
+1
-1
WimaArea.h
src/Wima/WimaArea.h
+1
-1
WimaAreaData.cc
src/Wima/WimaAreaData.cc
+77
-0
WimaAreaData.h
src/Wima/WimaAreaData.h
+32
-0
WimaController.cc
src/Wima/WimaController.cc
+1
-6
WimaController.h
src/Wima/WimaController.h
+6
-4
WimaCorridor.cc
src/Wima/WimaCorridor.cc
+63
-0
WimaCorridor.h
src/Wima/WimaCorridor.h
+41
-0
WimaCorridorData.cpp
src/Wima/WimaCorridorData.cpp
+25
-0
WimaCorridorData.h
src/Wima/WimaCorridorData.h
+22
-0
WimaDataContainer.cc
src/Wima/WimaDataContainer.cc
+2
-2
WimaDataContainer.h
src/Wima/WimaDataContainer.h
+10
-10
WimaGOperationArea.h
src/Wima/WimaGOperationArea.h
+0
-87
WimaMeasurementArea.cc
src/Wima/WimaMeasurementArea.cc
+133
-1
WimaMeasurementArea.h
src/Wima/WimaMeasurementArea.h
+80
-5
WimaMeasurementAreaData.h
src/Wima/WimaMeasurementAreaData.h
+31
-0
WimaMeasurementAreaDataareadata.cc
src/Wima/WimaMeasurementAreaDataareadata.cc
+6
-0
WimaPlaner.cc
src/Wima/WimaPlaner.cc
+4
-10
WimaPlaner.h
src/Wima/WimaPlaner.h
+4
-7
WimaServiceAreaData.cc
src/Wima/WimaServiceAreaData.cc
+77
-0
WimaServiceAreaData.h
src/Wima/WimaServiceAreaData.h
+33
-0
No files found.
qgroundcontrol.pro
View file @
05c2790f
...
...
@@ -408,16 +408,19 @@ HEADERS += \
src
/
comm
/
MavlinkMessagesTimer
.
h
\
src
/
GPS
/
Drivers
/
src
/
base_station
.
h
\
src
/
Wima
/
WimaArea
.
h
\
src
/
Wima
/
WimaGOperationArea
.
h
\
src
/
Wima
/
WimaServiceArea
.
h
\
src
/
Wima
/
WimaVCorridor
.
h
\
src
/
Wima
/
WimaTrackerPolyline
.
h
\
src
/
Wima
/
WimaController
.
h
\
src
/
Wima
/
WimaVehicle
.
h
\
src
/
Wima
/
WimaDataContainer
.
h
\
src
/
Wima
/
WimaPlaner
.
h
\
src
/
Wima
/
WimaPlaner
.
h
\
src
/
Wima
/
WimaMeasurementArea
.
h
src
/
Wima
/
WimaMeasurementArea
.
h
\
src
/
Wima
/
WimaCorridor
.
h
\
src
/
Wima
/
WimaAreaData
.
h
\
src
/
Wima
/
WimaServiceAreaData
.
h
\
src
/
Wima
/
WimaCorridorData
.
h
\
src
/
Wima
/
WimaMeasurementAreaData
.
h
SOURCES
+=
\
src
/
api
/
QGCCorePlugin
.
cc
\
src
/
api
/
QGCOptions
.
cc
\
...
...
@@ -426,13 +429,17 @@ SOURCES += \
src
/
comm
/
MavlinkMessagesTimer
.
cc
\
src
/
Wima
/
WimaArea
.
cc
\
src
/
Wima
/
WimaServiceArea
.
cc
\
src
/
Wima
/
WimaVCorridor
.
cc
\
src
/
Wima
/
WimaTrackerPolyline
.
cc
\
src
/
Wima
/
WimaController
.
cc
\
src
/
Wima
/
WimaVehicle
.
cc
\
src
/
Wima
/
WimaDataContainer
.
cc
\
src
/
Wima
/
WimaPlaner
.
cc
\
src
/
Wima
/
WimaMeasurementArea
.
cc
src
/
Wima
/
WimaMeasurementArea
.
cc
\
src
/
Wima
/
WimaCorridor
.
cc
\
src
/
Wima
/
WimaAreaData
.
cc
\
src
/
Wima
/
WimaServiceAreaData
.
cc
\
src
/
Wima
/
WimaCorridorData
.
cpp
\
src
/
Wima
/
WimaMeasurementAreaDataareadata
.
cc
#
#
Unit
Test
specific
configuration
goes
here
(
requires
full
debug
build
with
all
plugins
)
...
...
This diff is collapsed.
Click to expand it.
src/Wima/WimaArea.cc
View file @
05c2790f
...
...
@@ -677,7 +677,7 @@ bool WimaArea::loadFromJson(const QJsonObject &json, QString& errorString)
void
WimaArea
::
update
(
const
WimaArea
&
area
)
{
this
->
QGCMapPolygon
::
update
(
area
);
this
->
setMaxAltitude
(
area
.
maxAltitude
());
displays
this
->
setMaxAltitude
(
area
.
maxAltitude
());
}
/*!
...
...
This diff is collapsed.
Click to expand it.
src/Wima/WimaArea.h
View file @
05c2790f
...
...
@@ -80,7 +80,7 @@ public:
static
bool
dijkstraPath
(
const
QGeoCoordinate
&
c1
,
const
QGeoCoordinate
&
c2
,
const
WimaArea
&
area
,
QList
<
QGeoCoordinate
>&
dijkstraPath
);
/// @return true if the polygon is self intersecting
static
bool
isSelfIntersecting
(
const
WimaArea
&
area
);
static
bool
isSelfIntersectin
contrast
to
\
c
WimaAreain
g
(
const
WimaArea
&
area
);
bool
isSelfIntersecting
();
// Friends
...
...
This diff is collapsed.
Click to expand it.
src/Wima/WimaAreaData.cc
0 → 100644
View file @
05c2790f
#include "WimaAreaData.h"
WimaAreaData
::
WimaAreaData
(
QObject
*
parent
)
:
QObject
(
parent
)
{
_maxAltitude
=
0
;
}
WimaAreaData
::
WimaAreaData
(
WimaAreaData
&
other
,
QObject
*
parent
)
:
QObject
(
parent
)
,
_maxAltitude
(
other
.
maxAltitude
())
{
setPath
(
other
.
path
());
}
/*!
* \fn double WimaAreaData::maxAltitude()
*
* Returns the maximum altitude at which vehicles are allowed to fly.
*/
double
WimaAreaData
::
maxAltitude
()
const
{
return
_maxAltitude
;
}
/*!
* \fn double WimaAreaData::maxAltitude()
*
* Returns the path (vertex list defining the \l {Simple Polygon}).
*/
const
QList
<
QGeoCoordinate
>
&
WimaAreaData
::
path
()
const
{
return
_path
;
}
/*!
* \fn void WimaAreaData::setMaxAltitude(double maxAltitude)
*
* Sets the maximum altitude member to \a maxAltitude and emits the \c maxAltitudeChanged() signal if
* \a maxAltitude differs from the members value.
*/
void
WimaAreaData
::
setMaxAltitude
(
double
maxAltitude
)
{
if
(
!
qFuzzyCompare
(
_maxAltitude
,
maxAltitude
)
)
{
_maxAltitude
=
maxAltitude
;
emit
maxAltitudeChanged
(
_maxAltitude
);
}
}
/*!
* \fn void WimaAreaData::setPath(const QList<QGeoCoordinate> &coordinateList)
*
* Sets the path member to \a coordinateList by copying all entries of \a coordinateList.
* Emits the \c pathChanged() signal.
*/
void
WimaAreaData
::
setPath
(
const
QList
<
QGeoCoordinate
>
&
coordinateList
)
{
_path
.
clear
();
// copy all coordinates to _path
for
(
int
i
=
0
;
i
<
coordinateList
.
size
();
i
++
)
{
_path
.
append
(
coordinateList
.
value
(
i
));
}
emit
pathChanged
(
_path
);
}
/*!
* \class WimaArea::WimaAreaData
* \brief Class to store and exchange data of a \c WimaArea Object.
* Class to store and exchange data of a \c WimaArea Object. In contrast to \c WimaArea this class
* does not provied any interface to a grafical user interface, neiter it uses the QGC Fact System.
* It is designed to exchange data between the \c WimaPlaner and the \c WimaController class. And it
* is the base class for any derived data objects
*
* \sa WimaArea
*/
This diff is collapsed.
Click to expand it.
src/Wima/WimaAreaData.h
0 → 100644
View file @
05c2790f
#pragma once
#include <QObject>
#include "QGeoCoordinate"
class
WimaAreaData
:
public
QObject
{
Q_OBJECT
public:
explicit
WimaAreaData
(
QObject
*
parent
=
nullptr
);
explicit
WimaAreaData
(
WimaAreaData
&
other
,
QObject
*
parent
=
nullptr
);
double
maxAltitude
()
const
;
const
QList
<
QGeoCoordinate
>&
path
()
const
;
signals:
void
maxAltitudeChanged
(
double
maxAltitude
);
void
pathChanged
(
const
QList
<
QGeoCoordinate
>&
coordinateList
);
public
slots
:
void
setMaxAltitude
(
double
maxAltitude
);
void
setPath
(
const
QList
<
QGeoCoordinate
>&
coordinateList
);
private:
// see WimaArea.h for explanation
double
_maxAltitude
;
QList
<
QGeoCoordinate
>
_path
;
};
This diff is collapsed.
Click to expand it.
src/Wima/WimaController.cc
View file @
05c2790f
#
include
"WimaController.h"
#include "WimaController.h"
const
char
*
WimaController
::
wimaFileExtension
=
"wima"
;
const
char
*
WimaController
::
areaItemsName
=
"AreaItems"
;
...
...
@@ -43,11 +43,6 @@ QGeoCoordinate WimaController::joinedAreaCenter() const
return
_joinedArea
.
center
();
}
QGCMapPolygon
WimaController
::
joinedArea
()
const
{
return
_joinedArea
;
}
void
WimaController
::
setMasterController
(
PlanMasterController
*
masterC
)
{
_masterController
=
masterC
;
...
...
This diff is collapsed.
Click to expand it.
src/Wima/WimaController.h
View file @
05c2790f
...
...
@@ -7,7 +7,7 @@
#include "WimaArea.h"
#include "WimaMeasurementArea.h"
#include "WimaServiceArea.h"
#include "Wima
V
Corridor.h"
#include "WimaCorridor.h"
#include "WimaDataContainer.h"
#include "PlanMasterController.h"
...
...
@@ -37,8 +37,8 @@ public:
Q_PROPERTY
(
QStringList
saveNameFilters
READ
saveNameFilters
CONSTANT
)
Q_PROPERTY
(
QString
fileExtension
READ
fileExtension
CONSTANT
)
Q_PROPERTY
(
QGeoCoordinate
joinedAreaCenter
READ
joinedAreaCenter
CONSTANT
)
Q_PROPERTY
(
WimaArea
joinedArea
READ
joinedArea
NOTIFY
joinedAreaChanged
)
Q_PROPERTY
(
WimaDataContainer
*
dataContainer
WRITE
setDataContainer
NOTIFY
dataContainerChanged
)
Q_PROPERTY
(
QGCMapPolygon
joinedArea
READ
joinedArea
NOTIFY
joinedAreaChanged
)
Q_PROPERTY
(
WimaDataContainer
*
dataContainer
READ
dataContainer
WRITE
setDataContainer
NOTIFY
dataContainerChanged
)
Q_PROPERTY
(
bool
readyForSaveSend
READ
readyForSaveSend
NOTIFY
readyForSaveSendChanged
)
...
...
@@ -51,7 +51,8 @@ public:
QStringList
saveNameFilters
(
void
)
const
;
QString
fileExtension
(
void
)
const
{
return
wimaFileExtension
;
}
QGeoCoordinate
joinedAreaCenter
(
void
)
const
;
QGCMapPolygon
joinedArea
(
void
)
const
;
QGCMapPolygon
joinedArea
(
void
)
const
;
WimaDataContainer
*
dataContainer
(
void
)
const
;
bool
readyForSaveSend
(
void
)
const
{
return
_readyForSaveSend
;
}
...
...
@@ -92,6 +93,7 @@ signals:
void
currentFileChanged
();
void
dataContainerChanged
();
void
readyForSaveSendChanged
(
bool
ready
);
void
joinedAreaChanged
();
private
slots
:
void
pullFromContainer
();
...
...
This diff is collapsed.
Click to expand it.
src/Wima/Wima
V
Corridor.cc
→
src/Wima/WimaCorridor.cc
View file @
05c2790f
#include "Wima
V
Corridor.h"
#include "WimaCorridor.h"
const
char
*
Wima
VCorridor
::
wimaV
CorridorName
=
"Corridor"
;
const
char
*
Wima
Corridor
::
Wima
CorridorName
=
"Corridor"
;
Wima
VCorridor
::
WimaV
Corridor
(
QObject
*
parent
)
Wima
Corridor
::
Wima
Corridor
(
QObject
*
parent
)
:
WimaArea
(
parent
)
{
init
();
}
Wima
VCorridor
::
WimaVCorridor
(
const
WimaV
Corridor
&
other
,
QObject
*
parent
)
Wima
Corridor
::
WimaCorridor
(
const
Wima
Corridor
&
other
,
QObject
*
parent
)
:
WimaArea
(
other
,
parent
)
{
init
();
}
void
Wima
V
Corridor
::
saveToJson
(
QJsonObject
&
json
)
void
WimaCorridor
::
saveToJson
(
QJsonObject
&
json
)
{
this
->
WimaArea
::
saveToJson
(
json
);
json
[
areaTypeName
]
=
wimaV
CorridorName
;
json
[
areaTypeName
]
=
Wima
CorridorName
;
}
bool
Wima
V
Corridor
::
loadFromJson
(
const
QJsonObject
&
json
,
QString
&
errorString
)
bool
WimaCorridor
::
loadFromJson
(
const
QJsonObject
&
json
,
QString
&
errorString
)
{
if
(
this
->
WimaArea
::
loadFromJson
(
json
,
errorString
))
{
bool
retVal
=
true
;
...
...
@@ -34,24 +34,30 @@ bool WimaVCorridor::loadFromJson(const QJsonObject &json, QString &errorString)
}
}
void
Wima
VCorridor
::
update
(
const
WimaV
Corridor
&
area
)
void
Wima
Corridor
::
update
(
const
Wima
Corridor
&
area
)
{
this
->
WimaArea
::
update
(
area
);
}
void
Wima
V
Corridor
::
init
()
void
WimaCorridor
::
init
()
{
this
->
setObjectName
(
wimaV
CorridorName
);
this
->
setObjectName
(
Wima
CorridorName
);
}
void
print
(
const
Wima
V
Corridor
&
area
)
void
print
(
const
WimaCorridor
&
area
)
{
QString
message
;
print
(
area
,
message
);
qWarning
()
<<
message
;
}
void
print
(
const
Wima
V
Corridor
&
area
,
QString
&
outputString
)
void
print
(
const
WimaCorridor
&
area
,
QString
&
outputString
)
{
print
(
static_cast
<
const
WimaArea
&>
(
area
),
outputString
);
}
/*!
\class WimaCorridor
\brief Corridor (derived from \c WimaArea) connecting the \c WimaMeasurementArea and the \c WimaServiceArea.
*/
This diff is collapsed.
Click to expand it.
src/Wima/Wima
V
Corridor.h
→
src/Wima/WimaCorridor.h
View file @
05c2790f
...
...
@@ -3,37 +3,35 @@
#include <QObject>
#include "WimaArea.h"
#include "WimaServiceArea.h"
#include "Wima
GOperation
Area.h"
#include "Wima
Measurement
Area.h"
class
Wima
V
Corridor
:
public
WimaArea
class
WimaCorridor
:
public
WimaArea
{
Q_OBJECT
public:
Wima
V
Corridor
(
QObject
*
parent
=
nullptr
);
Wima
VCorridor
(
const
WimaV
Corridor
&
other
,
QObject
*
parent
=
nullptr
);
WimaCorridor
(
QObject
*
parent
=
nullptr
);
Wima
Corridor
(
const
Wima
Corridor
&
other
,
QObject
*
parent
=
nullptr
);
// Overrides from WimaPolygon
QString
mapVisualQML
(
void
)
const
{
return
"Wima
V
CorridorMapVisual.qml"
;}
QString
editorQML
(
void
)
const
{
return
"Wima
V
CorridorEditor.qml"
;}
QString
mapVisualQML
(
void
)
const
{
return
"WimaCorridorMapVisual.qml"
;}
QString
editorQML
(
void
)
const
{
return
"WimaCorridorEditor.qml"
;}
// Methodes
void
saveToJson
(
QJsonObject
&
json
);
bool
loadFromJson
(
const
QJsonObject
&
json
,
QString
&
errorString
);
// static Members
static
const
char
*
wimaV
CorridorName
;
static
const
char
*
Wima
CorridorName
;
// Friends
friend
void
print
(
const
Wima
V
Corridor
&
area
,
QString
&
outputString
);
friend
void
print
(
const
Wima
V
Corridor
&
area
);
friend
void
print
(
const
WimaCorridor
&
area
,
QString
&
outputString
);
friend
void
print
(
const
WimaCorridor
&
area
);
signals:
void
serviceAreaChanged
(
WimaServiceArea
*
serviceArea
);
void
opAreaChanged
(
WimaGOperationArea
*
opArea
);
public
slots
:
/// Updates this with data from area
void
update
(
const
Wima
V
Corridor
&
area
);
void
update
(
const
WimaCorridor
&
area
);
private:
void
init
();
...
...
This diff is collapsed.
Click to expand it.
src/Wima/WimaCorridorData.cpp
0 → 100644
View file @
05c2790f
#include "WimaCorridorData.h"
WimaCorridorData
::
WimaCorridorData
(
QObject
*
parent
)
:
WimaAreaData
(
parent
)
{
}
WimaCorridorData
::
WimaCorridorData
(
WimaCorridorData
&
other
,
QObject
*
parent
)
:
WimaAreaData
(
other
,
parent
)
{
}
/*!
* \class WimaAreaData::WimaCorridorData
* \brief Class to store and exchange data of a \c WimaCorridorData Object.
* Class to store and exchange data of a \c WimaCorridor Object. In contrast to \c WimaCorridor this class
* does not provied any interface to a grafical user interface, neiter it uses the QGC Fact System.
* It is designed to exchange data between the \c WimaPlaner and the \c WimaController class. And it
* is the derived from WimaAreaData.
*
* \sa WimaCorridor, WimaAreaData
*/
This diff is collapsed.
Click to expand it.
src/Wima/WimaCorridorData.h
0 → 100644
View file @
05c2790f
#pragma once
#include <QObject>
#include "WimaAreaData.h"
#include "QGeoCoordinate"
class
WimaCorridorData
:
public
WimaAreaData
{
Q_OBJECT
public:
explicit
WimaCorridorData
(
QObject
*
parent
=
nullptr
);
explicit
WimaCorridorData
(
WimaCorridorData
&
other
,
QObject
*
parent
=
nullptr
);
signals:
public
slots
:
private:
};
This diff is collapsed.
Click to expand it.
src/Wima/WimaDataContainer.cc
View file @
05c2790f
...
...
@@ -19,7 +19,7 @@ void WimaDataContainer::setJoinedArea(const WimaArea *joinedArea)
}
}
void
WimaDataContainer
::
setOpArea
(
const
Wima
GOperation
Area
*
opArea
)
void
WimaDataContainer
::
setOpArea
(
const
Wima
Measurement
Area
*
opArea
)
{
if
(
_opArea
!=
opArea
)
{
_opArea
=
opArea
;
...
...
@@ -37,7 +37,7 @@ void WimaDataContainer::setSerArea(const WimaServiceArea *serArea)
}
}
void
WimaDataContainer
::
setCorridor
(
const
Wima
V
Corridor
*
corridor
)
void
WimaDataContainer
::
setCorridor
(
const
WimaCorridor
*
corridor
)
{
if
(
_corridor
!=
corridor
)
{
_corridor
=
corridor
;
...
...
This diff is collapsed.
Click to expand it.
src/Wima/WimaDataContainer.h
View file @
05c2790f
...
...
@@ -5,9 +5,9 @@
#include "QmlObjectListModel.h"
#include "WimaArea.h"
#include "Wima
GOperation
Area.h"
#include "Wima
Measurement
Area.h"
#include "WimaServiceArea.h"
#include "Wima
V
Corridor.h"
#include "WimaCorridor.h"
class
WimaDataContainer
:
public
QObject
{
...
...
@@ -18,30 +18,30 @@ public:
WimaDataContainer
(
WimaDataContainer
&
other
)
=
delete
;
const
WimaArea
*
joinedArea
(
void
)
{
return
_joinedArea
;
}
const
Wima
GOperation
Area
*
opArea
(
void
)
{
return
_opArea
;
}
const
Wima
Measurement
Area
*
opArea
(
void
)
{
return
_opArea
;
}
const
WimaServiceArea
*
serArea
(
void
)
{
return
_serArea
;
}
const
Wima
V
Corridor
*
corridor
(
void
)
{
return
_corridor
;
}
const
WimaCorridor
*
corridor
(
void
)
{
return
_corridor
;
}
const
QmlObjectListModel
*
visualItems
(
void
)
{
return
_visualItems
;
}
signals:
void
joinedAreaChanged
(
const
WimaArea
*
area
);
void
opAreaChanged
(
const
Wima
GOperation
Area
*
area
);
void
opAreaChanged
(
const
Wima
Measurement
Area
*
area
);
void
serAreaChanged
(
const
WimaServiceArea
*
area
);
void
corridorChanged
(
const
Wima
V
Corridor
*
area
);
void
corridorChanged
(
const
WimaCorridor
*
area
);
void
visualItemsChanged
(
const
QmlObjectListModel
*
area
);
public
slots
:
void
setJoinedArea
(
const
WimaArea
*
joinedArea
);
void
setOpArea
(
const
Wima
GOperation
Area
*
opArea
);
void
setOpArea
(
const
Wima
Measurement
Area
*
opArea
);
void
setSerArea
(
const
WimaServiceArea
*
serArea
);
void
setCorridor
(
const
Wima
V
Corridor
*
corridor
);
void
setCorridor
(
const
WimaCorridor
*
corridor
);
void
setVisualItems
(
const
QmlObjectListModel
*
visualItems
);
private:
const
WimaArea
*
_joinedArea
;
const
Wima
GOperation
Area
*
_opArea
;
const
Wima
Measurement
Area
*
_opArea
;
const
WimaServiceArea
*
_serArea
;
const
Wima
V
Corridor
*
_corridor
;
const
WimaCorridor
*
_corridor
;
const
QmlObjectListModel
*
_visualItems
;
};
This diff is collapsed.
Click to expand it.
src/Wima/WimaGOperationArea.h
deleted
100644 → 0
View file @
d29b8b03
#pragma once
#include <QObject>
#include "WimaArea.h"
#include "SettingsFact.h"
#include "WimaTrackerPolyline.h"
#include "WimaGOperationArea.h"
#include "QScopedPointer"
class
WimaGOperationArea
:
public
WimaArea
{
Q_OBJECT
public:
WimaGOperationArea
(
QObject
*
parent
=
nullptr
);
WimaGOperationArea
(
const
WimaGOperationArea
&
other
,
QObject
*
parent
=
nullptr
);
Q_PROPERTY
(
Fact
*
bottomLayerAltitude
READ
bottomLayerAltitudeFact
CONSTANT
)
Q_PROPERTY
(
Fact
*
numberOfLayers
READ
numberOfLayersFact
CONSTANT
)
Q_PROPERTY
(
Fact
*
layerDistance
READ
layerDistanceFact
CONSTANT
)
Q_PROPERTY
(
Fact
*
borderPolygonOffset
READ
borderPolygonOffsetFact
CONSTANT
)
Q_PROPERTY
(
QGCMapPolygon
borderPolygon
READ
borderPolygon
NOTIFY
borderPolygonChanged
)
// Overrides from WimaPolygon
QString
mapVisualQML
(
void
)
const
{
return
"WimaGOperationAreaMapVisual.qml"
;}
QString
editorQML
(
void
)
const
{
return
"WimaGOperationAreaEditor.qml"
;}
// Property accessors
Fact
*
bottomLayerAltitudeFact
(
void
)
{
return
&
_bottomLayerAltitude
;}
Fact
*
numberOfLayersFact
(
void
)
{
return
&
_numberOfLayers
;}
Fact
*
layerDistanceFact
(
void
)
{
return
&
_layerDistance
;}
Fact
*
borderPolygonOffsetFact
(
void
)
{
return
&
_borderPolygonOffset
;}
double
bottomLayerAltitude
(
void
)
const
{
return
_bottomLayerAltitude
.
rawValue
().
toDouble
();}
int
numberOfLayers
(
void
)
const
{
return
_numberOfLayers
.
rawValue
().
toInt
();}
double
layerDistance
(
void
)
const
{
return
_layerDistance
.
rawValue
().
toDouble
();}
double
borderPolygonOffset
(
void
)
const
{
return
_borderPolygonOffset
.
rawValue
().
toDouble
();}
QGCMapPolygon
borderPolygon
(
void
)
const
{
return
_borderPolygon
;}
// Member Methodes
void
saveToJson
(
QJsonObject
&
json
);
bool
loadFromJson
(
const
QJsonObject
&
json
,
QString
&
errorString
);
// Friends
friend
void
print
(
const
WimaGOperationArea
&
area
,
QString
outputStr
);
friend
void
print
(
const
WimaGOperationArea
&
area
);
// Static Variables
static
const
char
*
settingsGroup
;
static
const
char
*
bottomLayerAltitudeName
;
static
const
char
*
numberOfLayersName
;
static
const
char
*
layerDistanceName
;
static
const
char
*
borderPolygonOffsetName
;
static
const
char
*
wimaGOperationAreaName
;
signals:
void
bottomLayerAltitudeChanged
(
void
);
void
numberOfLayersChanged
(
void
);
void
layerDistanceChanged
(
void
);
void
polylineChanged
(
void
);
void
vehicleCorridorChanged
(
WimaVCorridor
*
corridor
);
void
borderPolygonChanged
(
void
);
public
slots
:
/// Updates this with data from area
void
update
(
const
WimaGOperationArea
&
area
);
void
setBottomLayerAltitude
(
double
altitude
);
void
setNumberOfLayers
(
double
numLayers
);
void
setLayerDistance
(
double
layerDistance
);
void
setBorderPolygonOffset
(
double
offset
);
private
slots
:
void
recalcBorderPolygon
(
void
);
private:
// Member Methodes
void
init
();
// Members
QMap
<
QString
,
FactMetaData
*>
_metaDataMap
;
SettingsFact
_bottomLayerAltitude
;
SettingsFact
_numberOfLayers
;
SettingsFact
_layerDistance
;
SettingsFact
_borderPolygonOffset
;
QGCMapPolygon
_borderPolygon
;
};
This diff is collapsed.
Click to expand it.
src/Wima/WimaMeasurementArea.cc
View file @
05c2790f
#include "WimaMeasurementArea.h"
WimaMeasurementArea
::
WimaMeasurementArea
()
const
char
*
WimaMeasurementArea
::
settingsGroup
=
"OperationArea"
;
const
char
*
WimaMeasurementArea
::
bottomLayerAltitudeName
=
"BottomLayerAltitude"
;
const
char
*
WimaMeasurementArea
::
numberOfLayersName
=
"NumberOfLayers"
;
const
char
*
WimaMeasurementArea
::
layerDistanceName
=
"LayerDistance"
;
const
char
*
WimaMeasurementArea
::
borderPolygonOffsetName
=
"BorderPolygonOffset"
;
const
char
*
WimaMeasurementArea
::
WimaMeasurementAreaName
=
"Operation Area"
;
WimaMeasurementArea
::
WimaMeasurementArea
(
QObject
*
parent
)
:
WimaArea
(
parent
)
{
init
();
}
WimaMeasurementArea
::
WimaMeasurementArea
(
const
WimaMeasurementArea
&
other
,
QObject
*
parent
)
:
WimaArea
(
other
,
parent
)
{
init
();
}
void
WimaMeasurementArea
::
saveToJson
(
QJsonObject
&
json
)
{
this
->
WimaArea
::
saveToJson
(
json
);
json
[
bottomLayerAltitudeName
]
=
_bottomLayerAltitude
.
rawValue
().
toDouble
();
json
[
numberOfLayersName
]
=
_numberOfLayers
.
rawValue
().
toInt
();
json
[
layerDistanceName
]
=
_layerDistance
.
rawValue
().
toDouble
();
json
[
borderPolygonOffsetName
]
=
_borderPolygonOffset
.
rawValue
().
toDouble
();
json
[
areaTypeName
]
=
WimaMeasurementAreaName
;
}
bool
WimaMeasurementArea
::
loadFromJson
(
const
QJsonObject
&
json
,
QString
&
errorString
)
{
if
(
this
->
WimaArea
::
loadFromJson
(
json
,
errorString
))
{
bool
retVal
=
true
;
if
(
json
.
contains
(
bottomLayerAltitudeName
)
&&
json
[
bottomLayerAltitudeName
].
isDouble
()
)
{
_bottomLayerAltitude
.
setRawValue
(
json
[
bottomLayerAltitudeName
].
toDouble
());
}
else
{
errorString
.
append
(
tr
(
"Could not load Bottom Layer Altitude!
\n
"
));
retVal
=
false
;
}
if
(
json
.
contains
(
numberOfLayersName
)
&&
json
[
numberOfLayersName
].
isDouble
()
)
{
_numberOfLayers
.
setRawValue
(
json
[
numberOfLayersName
].
toInt
());
}
else
{
errorString
.
append
(
tr
(
"Could not load Number of Layers!
\n
"
));
retVal
=
false
;
}
if
(
json
.
contains
(
layerDistanceName
)
&&
json
[
layerDistanceName
].
isDouble
()
)
{
_layerDistance
.
setRawValue
(
json
[
layerDistanceName
].
toDouble
());
}
else
{
errorString
.
append
(
tr
(
"Could not load Layer Distance!
\n
"
));
retVal
=
false
;
}
if
(
json
.
contains
(
borderPolygonOffsetName
)
&&
json
[
borderPolygonOffsetName
].
isDouble
()
)
{
_borderPolygonOffset
.
setRawValue
(
json
[
borderPolygonOffsetName
].
toDouble
());
}
else
{
errorString
.
append
(
tr
(
"Could not load Border Polygon Offset!
\n
"
));
retVal
=
false
;
}
return
retVal
;
}
else
{
return
false
;
}
}
void
WimaMeasurementArea
::
update
(
const
WimaMeasurementArea
&
area
)
{
this
->
WimaArea
::
update
(
area
);
this
->
setBottomLayerAltitude
(
area
.
bottomLayerAltitude
());
this
->
setNumberOfLayers
(
area
.
numberOfLayers
());
this
->
setLayerDistance
(
area
.
layerDistance
());
this
->
setBorderPolygonOffset
(
area
.
borderPolygonOffset
());
recalcBorderPolygon
();
}
void
WimaMeasurementArea
::
setBottomLayerAltitude
(
double
altitude
)
{
}
void
print
(
const
WimaMeasurementArea
&
area
)
{
QString
message
;
print
(
area
,
message
);
qWarning
()
<<
message
;
}
void
print
(
const
WimaMeasurementArea
&
area
,
QString
outputStr
)
{
print
(
static_cast
<
const
WimaArea
&>
(
area
),
outputStr
);
outputStr
.
append
(
QString
(
"Bottom Layer Altitude: %1
\n
"
).
arg
(
area
.
_bottomLayerAltitude
.
rawValue
().
toDouble
()));
outputStr
.
append
(
QString
(
"Number of Layers: %1
\n
"
).
arg
(
area
.
_numberOfLayers
.
rawValue
().
toInt
()));
outputStr
.
append
(
QString
(
"Layer Distance: %1
\n
"
).
arg
(
area
.
_layerDistance
.
rawValue
().
toDouble
()));
outputStr
.
append
(
QString
(
"Border Polygon Offset: %1
\n
"
).
arg
(
area
.
_borderPolygonOffset
.
rawValue
().
toDouble
()));
outputStr
.
append
(
QString
(
"Border Polygon Coordinates
\n
"
).
arg
(
area
.
_borderPolygonOffset
.
rawValue
().
toDouble
()));
for
(
int
i
=
0
;
i
<
area
.
_borderPolygon
.
count
();
i
++
)
{
QGeoCoordinate
coordinate
=
area
.
_borderPolygon
.
vertexCoordinate
(
i
);
outputStr
.
append
(
QString
(
"%1
\n
"
).
arg
(
coordinate
.
toString
(
QGeoCoordinate
::
Degrees
)));
}
}
void
WimaMeasurementArea
::
recalcBorderPolygon
()
{
//qWarning("WimaMeasurementArea::recalcBorderPolygon() %f", _borderPolygonOffset.rawValue().toDouble());
QGCMapPolygon
polyCopy
=
this
->
toQGCPolygon
(
*
this
);
polyCopy
.
offset
(
_borderPolygonOffset
.
rawValue
().
toDouble
());
_borderPolygon
.
setPath
(
polyCopy
.
path
());
polyCopy
.
deleteLater
();
emit
borderPolygonChanged
();
}
void
WimaMeasurementArea
::
init
()
{
_metaDataMap
=
FactMetaData
::
createMapFromJsonFile
(
QStringLiteral
(
":/json/WimaMeasurementArea.SettingsGroup.json"
),
this
/* QObject parent */
);
_bottomLayerAltitude
=
SettingsFact
(
settingsGroup
,
_metaDataMap
[
bottomLayerAltitudeName
],
this
/* QObject parent */
);
_numberOfLayers
=
SettingsFact
(
settingsGroup
,
_metaDataMap
[
numberOfLayersName
],
this
/* QObject parent */
);
_layerDistance
=
SettingsFact
(
settingsGroup
,
_metaDataMap
[
layerDistanceName
],
this
/* QObject parent */
);
_borderPolygonOffset
=
SettingsFact
(
settingsGroup
,
_metaDataMap
[
borderPolygonOffsetName
],
this
/* QObject parent */
);
_borderPolygon
=
new
QGCMapPolygon
(
this
);
this
->
setObjectName
(
WimaMeasurementAreaName
);
connect
(
this
,
&
WimaMeasurementArea
::
pathChanged
,
this
,
&
WimaMeasurementArea
::
recalcBorderPolygon
);
connect
(
&
_borderPolygonOffset
,
&
SettingsFact
::
rawValueChanged
,
this
,
&
WimaMeasurementArea
::
recalcBorderPolygon
);
}
This diff is collapsed.
Click to expand it.
src/Wima/WimaMeasurementArea.h
View file @
05c2790f
#ifndef WIMAMEASUREMENTAREA_H
#define WIMAMEASUREMENTAREA_H
#pragma once
#include <QObject>
#include "WimaArea.h"
#include "SettingsFact.h"
#include "WimaTrackerPolyline.h"
class
WimaMeasurementArea
#include "QScopedPointer"
class
WimaMeasurementArea
:
public
WimaArea
{
Q_OBJECT
public:
WimaMeasurementArea
();
WimaMeasurementArea
(
QObject
*
parent
=
nullptr
);
WimaMeasurementArea
(
const
WimaMeasurementArea
&
other
,
QObject
*
parent
=
nullptr
);
Q_PROPERTY
(
Fact
*
bottomLayerAltitude
READ
bottomLayerAltitudeFact
CONSTANT
)
Q_PROPERTY
(
Fact
*
numberOfLayers
READ
numberOfLayersFact
CONSTANT
)
Q_PROPERTY
(
Fact
*
layerDistance
READ
layerDistanceFact
CONSTANT
)
Q_PROPERTY
(
Fact
*
borderPolygonOffset
READ
borderPolygonOffsetFact
CONSTANT
)
Q_PROPERTY
(
QGCMapPolygon
borderPolygon
READ
borderPolygon
NOTIFY
borderPolygonChanged
)
// Overrides from WimaPolygon
QString
mapVisualQML
(
void
)
const
{
return
"WimaMeasurementAreaMapVisual.qml"
;}
QString
editorQML
(
void
)
const
{
return
"WimaMeasurementAreaEditor.qml"
;}
// Property accessors
Fact
*
bottomLayerAltitudeFact
(
void
)
{
return
&
_bottomLayerAltitude
;}
Fact
*
numberOfLayersFact
(
void
)
{
return
&
_numberOfLayers
;}
Fact
*
layerDistanceFact
(
void
)
{
return
&
_layerDistance
;}
Fact
*
borderPolygonOffsetFact
(
void
)
{
return
&
_borderPolygonOffset
;}
double
bottomLayerAltitude
(
void
)
const
{
return
_bottomLayerAltitude
.
rawValue
().
toDouble
();}
int
numberOfLayers
(
void
)
const
{
return
_numberOfLayers
.
rawValue
().
toInt
();}
double
layerDistance
(
void
)
const
{
return
_layerDistance
.
rawValue
().
toDouble
();}
double
borderPolygonOffset
(
void
)
const
{
return
_borderPolygonOffset
.
rawValue
().
toDouble
();}
QGCMapPolygon
borderPolygon
(
void
)
const
{
return
_borderPolygon
;}
// Member Methodes
void
saveToJson
(
QJsonObject
&
json
);
bool
loadFromJson
(
const
QJsonObject
&
json
,
QString
&
errorString
);
// Friends
friend
void
print
(
const
WimaMeasurementArea
&
area
,
QString
outputStr
);
friend
void
print
(
const
WimaMeasurementArea
&
area
);
// Static Variables
static
const
char
*
settingsGroup
;
static
const
char
*
bottomLayerAltitudeName
;
static
const
char
*
numberOfLayersName
;
static
const
char
*
layerDistanceName
;
static
const
char
*
borderPolygonOffsetName
;
static
const
char
*
WimaMeasurementAreaName
;
signals:
void
bottomLayerAltitudeChanged
(
void
);
void
numberOfLayersChanged
(
void
);
void
layerDistanceChanged
(
void
);
void
polylineChanged
(
void
);
void
vehicleCorridorChanged
(
WimaVCorridor
*
corridor
);
void
borderPolygonChanged
(
void
);
public
slots
:
/// Updates this with data from area
void
update
(
const
WimaMeasurementArea
&
area
);
void
setBottomLayerAltitude
(
double
altitude
);
void
setNumberOfLayers
(
double
numLayers
);
void
setLayerDistance
(
double
layerDistance
);
void
setBorderPolygonOffset
(
double
offset
);
private
slots
:
void
recalcBorderPolygon
(
void
);
private:
// Member Methodes
void
init
();
// Members
QMap
<
QString
,
FactMetaData
*>
_metaDataMap
;
SettingsFact
_bottomLayerAltitude
;
SettingsFact
_numberOfLayers
;
SettingsFact
_layerDistance
;
SettingsFact
_borderPolygonOffset
;
QGCMapPolygon
_borderPolygon
;
};
#endif // WIMAMEASUREMENTAREA_H
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/Wima/WimaMeasurementAreaData.h
0 → 100644
View file @
05c2790f
#pragma once
#include <QObject>
#include "WimaAreaData.h"
#include "QGeoCoordinate"
class
WimaMeasurementAreaData
:
public
WimaAreaData
{
Q_OBJECT
public:
explicit
WimaMeasurementAreaData
(
QObject
*
parent
=
nullptr
);
explicit
WimaMeasurementAreaData
(
WimaMeasurementAreaData
&
other
,
QObject
*
parent
=
nullptr
);
const
QGeoCoordinate
&
takeOffPosition
()
const
;
const
QGeoCoordinate
&
landOffPosition
()
const
;
signals:
void
takeOffPositionChanged
(
const
QGeoCoordinate
&
other
);
void
landOffPositionChanged
(
const
QGeoCoordinate
&
other
);
public
slots
:
void
setTakeOffPosition
(
const
QGeoCoordinate
&
newCoordinate
);
void
setLandOffPosition
(
const
QGeoCoordinate
&
newCoordinate
);
private:
// see WimaServieArea.h for explanation
};
This diff is collapsed.
Click to expand it.
src/Wima/WimaMeasurementAreaDataareadata.cc
0 → 100644
View file @
05c2790f
#include "WimaMeasurementAreaData.h"
WimaMeasurementAreaData
::
WimaMeasurementAreaData
(
QObject
*
parent
)
:
QObject
(
parent
)
{
}
This diff is collapsed.
Click to expand it.
src/Wima/WimaPlaner.cc
View file @
05c2790f
...
...
@@ -44,11 +44,6 @@ QGeoCoordinate WimaPlaner::joinedAreaCenter() const
return
_joinedArea
.
center
();
}
WimaArea
WimaPlaner
::
joinedArea
()
const
{
return
_joinedArea
;
}
void
WimaPlaner
::
setMasterController
(
PlanMasterController
*
masterC
)
{
_masterController
=
masterC
;
...
...
@@ -388,7 +383,7 @@ bool WimaPlaner::loadFromFile(const QString &filename)
QJsonObject
jsonArea
=
areaArray
[
i
].
toObject
();
if
(
jsonArea
.
contains
(
WimaArea
::
areaTypeName
)
&&
jsonArea
[
WimaArea
::
areaTypeName
].
isString
())
{
if
(
jsonArea
[
WimaArea
::
areaTypeName
]
==
Wima
GOperationArea
::
wimaGOperation
AreaName
)
{
if
(
jsonArea
[
WimaArea
::
areaTypeName
]
==
Wima
MeasurementArea
::
WimaMeasurement
AreaName
)
{
print
(
_opArea
);
bool
success
=
_opArea
.
loadFromJson
(
jsonArea
,
errorString
);
print
(
_opArea
);
...
...
@@ -412,7 +407,7 @@ bool WimaPlaner::loadFromFile(const QString &filename)
validAreaCounter
++
;
_visualItems
.
append
(
&
_serArea
);
emit
visualItemsChanged
();
}
else
if
(
jsonArea
[
WimaArea
::
areaTypeName
]
==
Wima
VCorridor
::
wimaV
CorridorName
)
{
}
else
if
(
jsonArea
[
WimaArea
::
areaTypeName
]
==
Wima
Corridor
::
Wima
CorridorName
)
{
bool
success
=
_corridor
.
loadFromJson
(
jsonArea
,
errorString
);
if
(
!
success
)
{
...
...
@@ -507,7 +502,6 @@ bool WimaPlaner::recalcJoinedArea()
if
(
!
_joinedArea
.
join
(
_opArea
)
)
return
false
;
// this happens if all areas are pairwise disjoint
else
{
emit
joinedAreaChanged
()
;
return
true
;
}
...
...
@@ -566,7 +560,7 @@ QJsonDocument WimaPlaner::saveToJson(FileType fileType)
}
// check the type of area, create and append the JsonObject to the JsonArray once determined
Wima
GOperationArea
*
opArea
=
qobject_cast
<
WimaGOperation
Area
*>
(
area
);
Wima
MeasurementArea
*
opArea
=
qobject_cast
<
WimaMeasurement
Area
*>
(
area
);
if
(
opArea
!=
nullptr
)
{
opArea
->
saveToJson
(
json
);
jsonArray
.
append
(
json
);
...
...
@@ -580,7 +574,7 @@ QJsonDocument WimaPlaner::saveToJson(FileType fileType)
continue
;
}
Wima
VCorridor
*
corridor
=
qobject_cast
<
WimaV
Corridor
*>
(
area
);
Wima
Corridor
*
corridor
=
qobject_cast
<
Wima
Corridor
*>
(
area
);
if
(
corridor
!=
nullptr
)
{
corridor
->
saveToJson
(
json
);
jsonArray
.
append
(
json
);
...
...
This diff is collapsed.
Click to expand it.
src/Wima/WimaPlaner.h
View file @
05c2790f
...
...
@@ -5,9 +5,9 @@
#include "QmlObjectListModel.h"
#include "WimaArea.h"
#include "Wima
GOperation
Area.h"
#include "Wima
Measurement
Area.h"
#include "WimaServiceArea.h"
#include "Wima
V
Corridor.h"
#include "WimaCorridor.h"
#include "WimaDataContainer.h"
#include "PlanMasterController.h"
...
...
@@ -41,7 +41,6 @@ public:
Q_PROPERTY
(
QStringList
saveNameFilters
READ
saveNameFilters
CONSTANT
)
Q_PROPERTY
(
QString
fileExtension
READ
fileExtension
CONSTANT
)
Q_PROPERTY
(
QGeoCoordinate
joinedAreaCenter
READ
joinedAreaCenter
CONSTANT
)
Q_PROPERTY
(
WimaArea
joinedArea
READ
joinedArea
NOTIFY
joinedAreaChanged
)
Q_PROPERTY
(
WimaDataContainer
*
dataContainer
WRITE
setDataContainer
NOTIFY
dataContainerChanged
)
Q_PROPERTY
(
bool
readyForSaveSend
READ
readyForSaveSend
NOTIFY
readyForSaveSendChanged
)
...
...
@@ -56,7 +55,6 @@ public:
QStringList
saveNameFilters
(
void
)
const
;
QString
fileExtension
(
void
)
const
{
return
wimaFileExtension
;
}
QGeoCoordinate
joinedAreaCenter
(
void
)
const
;
WimaArea
joinedArea
(
void
)
const
;
bool
readyForSaveSend
(
void
)
const
{
return
_readyForSaveSend
;
}
...
...
@@ -110,7 +108,6 @@ signals:
void
visualItemsChanged
(
void
);
void
currentPolygonIndexChanged
(
int
index
);
void
currentFileChanged
();
void
joinedAreaChanged
();
void
dataContainerChanged
();
void
readyForSaveSendChanged
(
bool
ready
);
...
...
@@ -128,7 +125,7 @@ private:
WimaDataContainer
*
_container
;
// container for data exchange with WimaController
QmlObjectListModel
_visualItems
;
// contains all visible areas
WimaArea
_joinedArea
;
// joined area fromed by opArea, serArea, _corridor
Wima
GOperation
Area
_opArea
;
// measurement area
Wima
Measurement
Area
_opArea
;
// measurement area
WimaServiceArea
_serArea
;
// area for supplying
Wima
V
Corridor
_corridor
;
// corridor connecting opArea and serArea
WimaCorridor
_corridor
;
// corridor connecting opArea and serArea
};
This diff is collapsed.
Click to expand it.
src/Wima/WimaServiceAreaData.cc
0 → 100644
View file @
05c2790f
#include "WimaServiceAreaData.h"
WimaServiceAreaData
::
WimaServiceAreaData
(
QObject
*
parent
)
:
WimaAreaData
(
parent
)
{
}
WimaServiceAreaData
::
WimaServiceAreaData
(
WimaServiceAreaData
&
other
,
QObject
*
parent
)
:
WimaAreaData
(
other
,
parent
)
,
_takeOffPosition
(
other
.
takeOffPosition
())
,
_landPosition
(
other
.
landOffPosition
())
{
}
/*!
* \fn const QGeoCoordinate &WimaServiceAreaData::takeOffPosition() const
* Returns a constant reference to the takeOffPosition.
*
*/
const
QGeoCoordinate
&
WimaServiceAreaData
::
takeOffPosition
()
const
{
return
_takeOffPosition
;
}
/*!
* \fn const QGeoCoordinate &WimaServiceAreaData::landOffPosition() const
* Returns a constant reference to the landOffPosition.
*
*/
const
QGeoCoordinate
&
WimaServiceAreaData
::
landOffPosition
()
const
{
return
_landPosition
;
}
/*!
* \fn void WimaServiceAreaData::setTakeOffPosition(const QGeoCoordinate &newCoordinate)
* Sets the takeoff position to the \a newCoordinate and emits the takeOffPositionChanged() signal,
* if newCoordinate differs from the member value.
*
*/
void
WimaServiceAreaData
::
setTakeOffPosition
(
const
QGeoCoordinate
&
newCoordinate
)
{
if
(
_takeOffPosition
!=
newCoordinate
)
{
_takeOffPosition
=
newCoordinate
;
emit
takeOffPositionChanged
(
_takeOffPosition
);
}
}
/*!
* \fn void WimaServiceAreaData::setLandOffPosition(const QGeoCoordinate &newCoordinate)
* Sets the land position to the \a newCoordinate and emits the landOffPositionChanged() signal,
* if newCoordinate differs from the member value.
*
*/
void
WimaServiceAreaData
::
setLandOffPosition
(
const
QGeoCoordinate
&
newCoordinate
)
{
if
(
_landPosition
!=
newCoordinate
)
{
_landPosition
=
newCoordinate
;
emit
landOffPositionChanged
(
_landPosition
);
}
}
/*!
* \class WimaAreaData::WimaServiceAreaData
* \brief Class to store and exchange data of a \c WimaServiceArea Object.
* Class to store and exchange data of a \c WimaServiceArea Object. In contrast to \c WimaServiceArea this class
* does not provied any interface to a grafical user interface, neiter it uses the QGC Fact System.
* It is designed to exchange data between the \c WimaPlaner and the \c WimaController class. And it
* is the derived from WimaAreaData.
*
* \sa WimaServiceArea, WimaAreaData
*/
This diff is collapsed.
Click to expand it.
src/Wima/WimaServiceAreaData.h
0 → 100644
View file @
05c2790f
#pragma once
#include <QObject>
#include "WimaAreaData.h"
#include "QGeoCoordinate"
class
WimaServiceAreaData
:
public
WimaAreaData
{
Q_OBJECT
public:
explicit
WimaServiceAreaData
(
QObject
*
parent
=
nullptr
);
explicit
WimaServiceAreaData
(
WimaServiceAreaData
&
other
,
QObject
*
parent
=
nullptr
);
const
QGeoCoordinate
&
takeOffPosition
()
const
;
const
QGeoCoordinate
&
landOffPosition
()
const
;
signals:
void
takeOffPositionChanged
(
const
QGeoCoordinate
&
other
);
void
landOffPositionChanged
(
const
QGeoCoordinate
&
other
);
public
slots
:
void
setTakeOffPosition
(
const
QGeoCoordinate
&
newCoordinate
);
void
setLandOffPosition
(
const
QGeoCoordinate
&
newCoordinate
);
private:
// see WimaServieArea.h for explanation
QGeoCoordinate
_takeOffPosition
;
QGeoCoordinate
_landPosition
;
};
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment