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
f0df0818
Commit
f0df0818
authored
Aug 05, 2020
by
DonLakeFlyer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
parent
75a58f73
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
682 additions
and
442 deletions
+682
-442
CameraMetaData.cc
src/FirmwarePlugin/CameraMetaData.cc
+17
-11
CameraMetaData.h
src/FirmwarePlugin/CameraMetaData.h
+32
-29
FirmwarePlugin.cc
src/FirmwarePlugin/FirmwarePlugin.cc
+352
-276
CameraCalc.FactMetaData.json
src/MissionManager/CameraCalc.FactMetaData.json
+20
-20
CameraCalc.cc
src/MissionManager/CameraCalc.cc
+182
-44
CameraCalc.h
src/MissionManager/CameraCalc.h
+34
-16
CameraCalcTest.cc
src/MissionManager/CameraCalcTest.cc
+2
-2
StructureScanComplexItemTest.cc
src/MissionManager/StructureScanComplexItemTest.cc
+1
-1
SurveyComplexItem.cc
src/MissionManager/SurveyComplexItem.cc
+2
-2
TransectStyleComplexItemTest.cc
src/MissionManager/TransectStyleComplexItemTest.cc
+3
-3
CameraCalcCamera.qml
src/PlanView/CameraCalcCamera.qml
+37
-38
No files found.
src/FirmwarePlugin/CameraMetaData.cc
View file @
f0df0818
...
@@ -9,7 +9,9 @@
...
@@ -9,7 +9,9 @@
#include "CameraMetaData.h"
#include "CameraMetaData.h"
CameraMetaData
::
CameraMetaData
(
const
QString
&
name
,
CameraMetaData
::
CameraMetaData
(
const
QString
&
canonicalName
,
const
QString
&
brand
,
const
QString
&
model
,
double
sensorWidth
,
double
sensorWidth
,
double
sensorHeight
,
double
sensorHeight
,
double
imageWidth
,
double
imageWidth
,
...
@@ -18,17 +20,21 @@ CameraMetaData::CameraMetaData(const QString& name,
...
@@ -18,17 +20,21 @@ CameraMetaData::CameraMetaData(const QString& name,
bool
landscape
,
bool
landscape
,
bool
fixedOrientation
,
bool
fixedOrientation
,
double
minTriggerInterval
,
double
minTriggerInterval
,
const
QString
&
deprecatedTranslatedName
,
QObject
*
parent
)
QObject
*
parent
)
:
QObject
(
parent
)
:
QObject
(
parent
)
,
_name
(
name
)
,
canonicalName
(
canonicalName
)
,
_sensorWidth
(
sensorWidth
)
,
brand
(
brand
)
,
_sensorHeight
(
sensorHeight
)
,
model
(
model
)
,
_imageWidth
(
imageWidth
)
,
sensorWidth
(
sensorWidth
)
,
_imageHeight
(
imageHeight
)
,
sensorHeight
(
sensorHeight
)
,
_focalLength
(
focalLength
)
,
imageWidth
(
imageWidth
)
,
_landscape
(
landscape
)
,
imageHeight
(
imageHeight
)
,
_fixedOrientation
(
fixedOrientation
)
,
focalLength
(
focalLength
)
,
_minTriggerInterval
(
minTriggerInterval
)
,
landscape
(
landscape
)
,
fixedOrientation
(
fixedOrientation
)
,
minTriggerInterval
(
minTriggerInterval
)
,
deprecatedTranslatedName
(
deprecatedTranslatedName
)
{
{
}
}
src/FirmwarePlugin/CameraMetaData.h
View file @
f0df0818
...
@@ -17,7 +17,9 @@ class CameraMetaData : public QObject
...
@@ -17,7 +17,9 @@ class CameraMetaData : public QObject
Q_OBJECT
Q_OBJECT
public:
public:
CameraMetaData
(
const
QString
&
name
,
CameraMetaData
(
const
QString
&
canonicalName
,
const
QString
&
brand
,
const
QString
&
model
,
double
sensorWidth
,
double
sensorWidth
,
double
sensorHeight
,
double
sensorHeight
,
double
imageWidth
,
double
imageWidth
,
...
@@ -26,36 +28,37 @@ public:
...
@@ -26,36 +28,37 @@ public:
bool
landscape
,
bool
landscape
,
bool
fixedOrientation
,
bool
fixedOrientation
,
double
minTriggerInterval
,
double
minTriggerInterval
,
const
QString
&
deprecatedTranslatedName
,
QObject
*
parent
=
nullptr
);
QObject
*
parent
=
nullptr
);
Q_PROPERTY
(
QString
name
READ
name
CONSTANT
)
///< Camera name
Q_PROPERTY
(
QString
canonicalName
MEMBER
canonicalName
CONSTANT
)
Q_PROPERTY
(
double
sensorWidth
READ
sensorWidth
CONSTANT
)
///< Sensor size in millimeters
Q_PROPERTY
(
QString
deprecatedTranslatedName
MEMBER
deprecatedTranslatedName
CONSTANT
)
Q_PROPERTY
(
double
sensorHeight
READ
sensorHeight
CONSTANT
)
///< Sensor size in millimeters
Q_PROPERTY
(
QString
brand
MEMBER
brand
CONSTANT
)
Q_PROPERTY
(
double
imageWidth
READ
imageWidth
CONSTANT
)
///< Image size in pixels
Q_PROPERTY
(
QString
model
MEMBER
model
CONSTANT
)
Q_PROPERTY
(
double
imageHeight
READ
imageHeight
CONSTANT
)
///< Image size in pixels
Q_PROPERTY
(
double
sensorWidth
MEMBER
sensorWidth
CONSTANT
)
Q_PROPERTY
(
double
focalLength
READ
focalLength
CONSTANT
)
///< Focal length in millimeters
Q_PROPERTY
(
double
sensorHeight
MEMBER
sensorHeight
CONSTANT
)
Q_PROPERTY
(
bool
landscape
READ
landscape
CONSTANT
)
///< true: camera is in landscape orientation
Q_PROPERTY
(
double
imageWidth
MEMBER
imageWidth
CONSTANT
)
Q_PROPERTY
(
bool
fixedOrientation
READ
fixedOrientation
CONSTANT
)
///< true: camera is in fixed orientation
Q_PROPERTY
(
double
imageHeight
MEMBER
imageHeight
CONSTANT
)
Q_PROPERTY
(
double
minTriggerInterval
READ
minTriggerInterval
CONSTANT
)
///< Minimum time in seconds between each photo taken, 0 for not specified
Q_PROPERTY
(
double
focalLength
MEMBER
focalLength
CONSTANT
)
Q_PROPERTY
(
bool
landscape
MEMBER
landscape
CONSTANT
)
Q_PROPERTY
(
bool
fixedOrientation
MEMBER
fixedOrientation
CONSTANT
)
Q_PROPERTY
(
double
minTriggerInterval
MEMBER
minTriggerInterval
CONSTANT
)
QString
name
(
void
)
const
{
return
_name
;
}
QString
canonicalName
;
///< Canonical name saved in plan files. Not translated.
double
sensorWidth
(
void
)
const
{
return
_sensorWidth
;
}
QString
brand
;
///< Camera brand. Used for grouping.
double
sensorHeight
(
void
)
const
{
return
_sensorHeight
;
}
QString
model
;
///< Camerar model
double
imageWidth
(
void
)
const
{
return
_imageWidth
;
}
double
sensorWidth
;
///< Sensor size in millimeters
double
imageHeight
(
void
)
const
{
return
_imageHeight
;
}
double
sensorHeight
;
///< Sensor size in millimeters
double
focalLength
(
void
)
const
{
return
_focalLength
;
}
double
imageWidth
;
///< Image size in pixels
bool
landscape
(
void
)
const
{
return
_landscape
;
}
double
imageHeight
;
///< Image size in pixels
bool
fixedOrientation
(
void
)
const
{
return
_fixedOrientation
;
}
double
focalLength
;
///< Focal length in millimeters
double
minTriggerInterval
(
void
)
const
{
return
_minTriggerInterval
;
}
bool
landscape
;
///< true: camera is in landscape orientation
bool
fixedOrientation
;
///< true: camera is in fixed orientation
double
minTriggerInterval
;
///< Minimum time in seconds between each photo taken, 0 for not specified
private:
/// In older builds camera names were incorrect marked for translation. This leads to plan files which have are language
QString
_name
;
/// dependant which is not a good thing. Newer plan files use the canonical name which is not translated. In order to support
double
_sensorWidth
;
/// loading older plan files we continue to include the incorrect translation so we can match against them as needed.
double
_sensorHeight
;
/// Newly added CameraMetaData entries should leave this value empty.
double
_imageWidth
;
QString
deprecatedTranslatedName
;
double
_imageHeight
;
double
_focalLength
;
bool
_landscape
;
bool
_fixedOrientation
;
double
_minTriggerInterval
;
};
};
src/FirmwarePlugin/FirmwarePlugin.cc
View file @
f0df0818
...
@@ -174,7 +174,7 @@ bool FirmwarePlugin::sendHomePositionToVehicle(void)
...
@@ -174,7 +174,7 @@ bool FirmwarePlugin::sendHomePositionToVehicle(void)
return
false
;
return
false
;
}
}
QList
<
MAV_CMD
>
FirmwarePlugin
::
supportedMissionCommands
(
QGCMAVLink
::
VehicleClass_t
vehicleClass
)
QList
<
MAV_CMD
>
FirmwarePlugin
::
supportedMissionCommands
(
QGCMAVLink
::
VehicleClass_t
/* vehicleClass */
)
{
{
// Generic supports all commands
// Generic supports all commands
return
QList
<
MAV_CMD
>
();
return
QList
<
MAV_CMD
>
();
...
@@ -336,8 +336,10 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -336,8 +336,10 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
CameraMetaData
*
metaData
;
CameraMetaData
*
metaData
;
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
//tr("Canon S100 @ 5.2mm f/2"),
// Canon S100 @ 5.2mm f/2
tr
(
"Canon S100 PowerShot"
),
"Canon S100 PowerShot"
,
// canonical name saved in plan file
tr
(
"Canon"
),
// brand
tr
(
"S100 PowerShot"
),
// model
7.6
,
// sensorWidth
7.6
,
// sensorWidth
5.7
,
// sensorHeight
5.7
,
// sensorHeight
4000
,
// imageWidth
4000
,
// imageWidth
...
@@ -346,12 +348,15 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -346,12 +348,15 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
false
,
// true: camera is fixed orientation
false
,
// true: camera is fixed orientation
0
,
// minimum trigger interval
0
,
// minimum trigger interval
tr
(
"Canon S100 PowerShot"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
//tr("Canon EOS-M 22mm f/2"),
//tr("Canon EOS-M 22mm f/2"),
tr
(
"Canon EOS-M 22mm"
),
"Canon EOS-M 22mm"
,
tr
(
"Canon"
),
tr
(
"EOS-M 22mm"
),
22.3
,
// sensorWidth
22.3
,
// sensorWidth
14.9
,
// sensorHeight
14.9
,
// sensorHeight
5184
,
// imageWidth
5184
,
// imageWidth
...
@@ -360,12 +365,15 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -360,12 +365,15 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
false
,
// true: camera is fixed orientation
false
,
// true: camera is fixed orientation
0
,
// minimum trigger interval
0
,
// minimum trigger interval
tr
(
"Canon EOS-M 22mm"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
//tr("Canon G9X @ 10.2mm f/2"),
// Canon G9X @ 10.2mm f/2
tr
(
"Canon G9 X PowerShot"
),
"Canon G9 X PowerShot"
,
tr
(
"Canon"
),
tr
(
"G9 X PowerShot"
),
13.2
,
// sensorWidth
13.2
,
// sensorWidth
8.8
,
// sensorHeight
8.8
,
// sensorHeight
5488
,
// imageWidth
5488
,
// imageWidth
...
@@ -374,12 +382,15 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -374,12 +382,15 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
false
,
// true: camera is fixed orientation
false
,
// true: camera is fixed orientation
0
,
// minimum trigger interval
0
,
// minimum trigger interval
tr
(
"Canon G9 X PowerShot"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
//tr("Canon SX260 HS @ 4.5mm f/3.5"),
// Canon SX260 HS @ 4.5mm f/3.5
tr
(
"Canon SX260 HS PowerShot"
),
"Canon SX260 HS PowerShot"
,
tr
(
"Canon"
),
tr
(
"SX260 HS PowerShot"
),
6.17
,
// sensorWidth
6.17
,
// sensorWidth
4.55
,
// sensorHeight
4.55
,
// sensorHeight
4000
,
// imageWidth
4000
,
// imageWidth
...
@@ -388,11 +399,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -388,11 +399,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
false
,
// true: camera is fixed orientation
false
,
// true: camera is fixed orientation
0
,
// minimum trigger interval
0
,
// minimum trigger interval
tr
(
"Canon SX260 HS PowerShot"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"GoPro Hero 4"
),
"GoPro Hero 4"
,
tr
(
"GoPro"
),
tr
(
"Hero 4"
),
6.17
,
// sensorWidth
6.17
,
// sensorWidth
4.55
,
// sendsorHeight
4.55
,
// sendsorHeight
4000
,
// imageWidth
4000
,
// imageWidth
...
@@ -401,12 +415,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -401,12 +415,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// landscape
true
,
// landscape
false
,
// fixedOrientation
false
,
// fixedOrientation
0
,
// minTriggerInterval
0
,
// minTriggerInterval
tr
(
"GoPro Hero 4"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
this
);
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
//tr("Parrot Sequoia RGB"),
"Parrot Sequioa RGB"
,
tr
(
"Parrot Sequioa RGB"
),
tr
(
"Parrot"
),
tr
(
"Sequioa RGB"
),
6.17
,
// sensorWidth
6.17
,
// sensorWidth
4.63
,
// sendsorHeight
4.63
,
// sendsorHeight
4608
,
// imageWidth
4608
,
// imageWidth
...
@@ -415,12 +431,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -415,12 +431,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// landscape
true
,
// landscape
false
,
// fixedOrientation
false
,
// fixedOrientation
1
,
// minTriggerInterval
1
,
// minTriggerInterval
tr
(
"Parrot Sequioa RGB"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
this
);
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
//tr("Parrot Sequoia Monochrome"),
"Parrot Sequioa Monochrome"
,
tr
(
"Parrot Sequioa Monochrome"
),
tr
(
"Parrot"
),
tr
(
"Sequioa Monochrome"
),
4.8
,
// sensorWidth
4.8
,
// sensorWidth
3.6
,
// sendsorHeight
3.6
,
// sendsorHeight
1280
,
// imageWidth
1280
,
// imageWidth
...
@@ -429,10 +447,13 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -429,10 +447,13 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// landscape
true
,
// landscape
false
,
// fixedOrientation
false
,
// fixedOrientation
0.8
,
// minTriggerInterval
0.8
,
// minTriggerInterval
tr
(
"Parrot Sequioa Monochrome"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
this
);
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
"RedEdge"
,
tr
(
"RedEdge"
),
tr
(
"RedEdge"
),
tr
(
"RedEdge"
),
4.8
,
// sensorWidth
4.8
,
// sensorWidth
3.6
,
// sendsorHeight
3.6
,
// sendsorHeight
...
@@ -442,12 +463,15 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -442,12 +463,15 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// landscape
true
,
// landscape
false
,
// fixedOrientation
false
,
// fixedOrientation
0
,
// minTriggerInterval
0
,
// minTriggerInterval
tr
(
"RedEdge"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
this
);
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
//tr("Ricoh GR II 18.3mm f/2.8"),
// Ricoh GR II 18.3mm f/2.8
tr
(
"Ricoh GR II"
),
"Ricoh GR II"
,
tr
(
"Ricoh"
),
tr
(
"GR II"
),
23.7
,
// sensorWidth
23.7
,
// sensorWidth
15.7
,
// sendsorHeight
15.7
,
// sendsorHeight
4928
,
// imageWidth
4928
,
// imageWidth
...
@@ -456,11 +480,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -456,11 +480,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// landscape
true
,
// landscape
false
,
// fixedOrientation
false
,
// fixedOrientation
0
,
// minTriggerInterval
0
,
// minTriggerInterval
tr
(
"Ricoh GR II"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
this
);
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"Sentera Double 4K Sensor"
),
"Sentera Double 4K Sensor"
,
tr
(
"Sentera"
),
tr
(
"Double 4K Sensor"
),
6.2
,
// sensorWidth
6.2
,
// sensorWidth
4.65
,
// sendsorHeight
4.65
,
// sendsorHeight
4000
,
// imageWidth
4000
,
// imageWidth
...
@@ -469,11 +496,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -469,11 +496,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// landscape
true
,
// landscape
false
,
// fixedOrientation
false
,
// fixedOrientation
0
,
// minTriggerInterval
0
,
// minTriggerInterval
tr
(
"Sentera Double 4K Sensor"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
this
);
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"Sentera NDVI Single Sensor"
),
"Sentera NDVI Single Sensor"
,
tr
(
"Sentera"
),
tr
(
"NDVI Single Sensor"
),
4.68
,
// sensorWidth
4.68
,
// sensorWidth
3.56
,
// sendsorHeight
3.56
,
// sendsorHeight
1248
,
// imageWidth
1248
,
// imageWidth
...
@@ -482,13 +512,16 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -482,13 +512,16 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// landscape
true
,
// landscape
false
,
// fixedOrientation
false
,
// fixedOrientation
0
,
// minTriggerInterval
0
,
// minTriggerInterval
tr
(
"Sentera NDVI Single Sensor"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
this
);
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
//-- http://www.sony.co.uk/electronics/interchangeable-lens-cameras/ilce-6000-body-kit#product_details_default
//-- http://www.sony.co.uk/electronics/interchangeable-lens-cameras/ilce-6000-body-kit#product_details_default
//tr("Sony a6000 Sony 16mm f/2.8"),
// Sony a6000 Sony 16mm f/2.8"
tr
(
"Sony a6000 16mm"
),
"Sony a6000 16mm"
,
tr
(
"Sony"
),
tr
(
"a6000 16mm"
),
23.5
,
// sensorWidth
23.5
,
// sensorWidth
15.6
,
// sensorHeight
15.6
,
// sensorHeight
6000
,
// imageWidth
6000
,
// imageWidth
...
@@ -497,11 +530,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -497,11 +530,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
false
,
// true: camera is fixed orientation
false
,
// true: camera is fixed orientation
2.0
,
// minimum trigger interval
2.0
,
// minimum trigger interval
tr
(
"Sony a6000 16mm"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"Sony a6300 Zeiss 21mm f/2.8"
),
"Sony a6300 Zeiss 21mm f/2.8"
,
tr
(
"Sony"
),
tr
(
"a6300 Zeiss 21mm f/2.8"
),
23.5
,
// sensorWidth
23.5
,
// sensorWidth
15.6
,
// sensorHeight
15.6
,
// sensorHeight
6000
,
// imageWidth
6000
,
// imageWidth
...
@@ -510,11 +546,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -510,11 +546,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
true
,
// true: camera is fixed orientation
true
,
// true: camera is fixed orientation
2.0
,
// minimum trigger interval
2.0
,
// minimum trigger interval
tr
(
"Sony a6300 Zeiss 21mm f/2.8"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"Sony a6300 Sony 28mm f/2.0"
),
"Sony a6300 Sony 28mm f/2.0"
,
tr
(
"Sony"
),
tr
(
"a6300 Sony 28mm f/2.0"
),
23.5
,
// sensorWidth
23.5
,
// sensorWidth
15.6
,
// sensorHeight
15.6
,
// sensorHeight
6000
,
// imageWidth
6000
,
// imageWidth
...
@@ -523,11 +562,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -523,11 +562,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
true
,
// true: camera is fixed orientation
true
,
// true: camera is fixed orientation
2.0
,
// minimum trigger interval
2.0
,
// minimum trigger interval
tr
(
"Sony a6300 Sony 28mm f/2.0"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"Sony a7R II Zeiss 21mm f/2.8"
),
"Sony a7R II Zeiss 21mm f/2.8"
,
tr
(
"Sony"
),
tr
(
"a7R II Zeiss 21mm f/2.8"
),
35.814
,
// sensorWidth
35.814
,
// sensorWidth
23.876
,
// sensorHeight
23.876
,
// sensorHeight
7952
,
// imageWidth
7952
,
// imageWidth
...
@@ -536,11 +578,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -536,11 +578,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
true
,
// true: camera is fixed orientation
true
,
// true: camera is fixed orientation
2.0
,
// minimum trigger interval
2.0
,
// minimum trigger interval
tr
(
"Sony a7R II Zeiss 21mm f/2.8"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"Sony a7R II Sony 28mm f/2.0"
),
"Sony a7R II Sony 28mm f/2.0"
,
tr
(
"Sony"
),
tr
(
"a7R II Sony 28mm f/2.0"
),
35.814
,
// sensorWidth
35.814
,
// sensorWidth
23.876
,
// sensorHeight
23.876
,
// sensorHeight
7952
,
// imageWidth
7952
,
// imageWidth
...
@@ -549,11 +594,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -549,11 +594,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
true
,
// true: camera is fixed orientation
true
,
// true: camera is fixed orientation
2.0
,
// minimum trigger interval
2.0
,
// minimum trigger interval
tr
(
"Sony a7R II Sony 28mm f/2.0"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"Sony DSC-QX30U @ 4.3mm f/3.5"
),
"Sony DSC-QX30U @ 4.3mm f/3.5"
,
tr
(
"Sony"
),
tr
(
"DSC-QX30U @ 4.3mm f/3.5"
),
7.82
,
// sensorWidth
7.82
,
// sensorWidth
5.865
,
// sensorHeight
5.865
,
// sensorHeight
5184
,
// imageWidth
5184
,
// imageWidth
...
@@ -562,11 +610,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -562,11 +610,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
false
,
// true: camera is fixed orientation
false
,
// true: camera is fixed orientation
2.0
,
// minimum trigger interval
2.0
,
// minimum trigger interval
tr
(
"Sony DSC-QX30U @ 4.3mm f/3.5"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"Sony DSC-RX0"
),
"Sony DSC-RX0"
,
tr
(
"Sony"
),
tr
(
"DSC-RX0"
),
13.2
,
// sensorWidth
13.2
,
// sensorWidth
8.8
,
// sensorHeight
8.8
,
// sensorHeight
4800
,
// imageWidth
4800
,
// imageWidth
...
@@ -575,6 +626,7 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -575,6 +626,7 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
false
,
// true: camera is fixed orientation
false
,
// true: camera is fixed orientation
0
,
// minimum trigger interval
0
,
// minimum trigger interval
tr
(
"Sony DSC-RX0"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
...
@@ -582,7 +634,9 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -582,7 +634,9 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
//-- http://www.sony.co.uk/electronics/interchangeable-lens-cameras/ilce-qx1-body-kit/specifications
//-- http://www.sony.co.uk/electronics/interchangeable-lens-cameras/ilce-qx1-body-kit/specifications
//-- http://www.sony.com/electronics/camera-lenses/sel16f28/specifications
//-- http://www.sony.com/electronics/camera-lenses/sel16f28/specifications
//tr("Sony ILCE-QX1 Sony 16mm f/2.8"),
//tr("Sony ILCE-QX1 Sony 16mm f/2.8"),
tr
(
"Sony ILCE-QX1"
),
"Sony ILCE-QX1"
,
tr
(
"Sony"
),
tr
(
"ILCE-QX1"
),
23.2
,
// sensorWidth
23.2
,
// sensorWidth
15.4
,
// sensorHeight
15.4
,
// sensorHeight
5456
,
// imageWidth
5456
,
// imageWidth
...
@@ -591,13 +645,16 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -591,13 +645,16 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
false
,
// true: camera is fixed orientation
false
,
// true: camera is fixed orientation
0
,
// minimum trigger interval
0
,
// minimum trigger interval
tr
(
"Sony ILCE-QX1"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
//-- http://www.sony.co.uk/electronics/interchangeable-lens-cameras/ilce-qx1-body-kit/specifications
//-- http://www.sony.co.uk/electronics/interchangeable-lens-cameras/ilce-qx1-body-kit/specifications
//tr("Sony NEX-5R Sony 20mm f/2.8"),
// Sony NEX-5R Sony 20mm f/2.8"
tr
(
"Sony NEX-5R 20mm"
),
"Sony NEX-5R 20mm"
,
tr
(
"Sony"
),
tr
(
"NEX-5R 20mm"
),
23.2
,
// sensorWidth
23.2
,
// sensorWidth
15.4
,
// sensorHeight
15.4
,
// sensorHeight
4912
,
// imageWidth
4912
,
// imageWidth
...
@@ -606,12 +663,15 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -606,12 +663,15 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
false
,
// true: camera is fixed orientation
false
,
// true: camera is fixed orientation
1
,
// minimum trigger interval
1
,
// minimum trigger interval
tr
(
"Sony NEX-5R 20mm"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
//tr("Sony RX100 II @ 10.4mm f/1.8"),
// Sony RX100 II @ 10.4mm f/1.8
tr
(
"Sony RX100 II 28mm"
),
"Sony RX100 II 28mm"
,
tr
(
"Sony"
),
tr
(
"RX100 II 28mm"
),
13.2
,
// sensorWidth
13.2
,
// sensorWidth
8.8
,
// sensorHeight
8.8
,
// sensorHeight
5472
,
// imageWidth
5472
,
// imageWidth
...
@@ -620,11 +680,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -620,11 +680,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
false
,
// true: camera is fixed orientation
false
,
// true: camera is fixed orientation
0
,
// minimum trigger interval
0
,
// minimum trigger interval
tr
(
"Sony RX100 II 28mm"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"Yuneec CGOET"
),
"Yuneec CGOET"
,
tr
(
"Yuneec"
),
tr
(
"CGOET"
),
5.6405
,
// sensorWidth
5.6405
,
// sensorWidth
3.1813
,
// sensorHeight
3.1813
,
// sensorHeight
1920
,
// imageWidth
1920
,
// imageWidth
...
@@ -633,11 +696,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -633,11 +696,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
true
,
// true: camera is fixed orientation
true
,
// true: camera is fixed orientation
1.3
,
// minimum trigger interval
1.3
,
// minimum trigger interval
tr
(
"Yuneec CGOET"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"Yuneec E10T"
),
"Yuneec E10T"
,
tr
(
"Yuneec"
),
tr
(
"E10T"
),
5.6405
,
// sensorWidth
5.6405
,
// sensorWidth
3.1813
,
// sensorHeight
3.1813
,
// sensorHeight
1920
,
// imageWidth
1920
,
// imageWidth
...
@@ -646,11 +712,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -646,11 +712,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
true
,
// true: camera is fixed orientation
true
,
// true: camera is fixed orientation
1.3
,
// minimum trigger interval
1.3
,
// minimum trigger interval
tr
(
"Yuneec E10T"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"Yuneec E50"
),
"Yuneec E50"
,
tr
(
"Yuneec"
),
tr
(
"E50"
),
6.2372
,
// sensorWidth
6.2372
,
// sensorWidth
4.7058
,
// sensorHeight
4.7058
,
// sensorHeight
4000
,
// imageWidth
4000
,
// imageWidth
...
@@ -659,11 +728,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -659,11 +728,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
true
,
// true: camera is fixed orientation
true
,
// true: camera is fixed orientation
1.3
,
// minimum trigger interval
1.3
,
// minimum trigger interval
tr
(
"Yuneec E50"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"Yuneec E90"
),
"Yuneec E90"
,
tr
(
"Yuneec"
),
tr
(
"E90"
),
13.3056
,
// sensorWidth
13.3056
,
// sensorWidth
8.656
,
// sensorHeight
8.656
,
// sensorHeight
5472
,
// imageWidth
5472
,
// imageWidth
...
@@ -672,11 +744,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -672,11 +744,14 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
true
,
// true: camera is fixed orientation
true
,
// true: camera is fixed orientation
1.3
,
// minimum trigger interval
1.3
,
// minimum trigger interval
tr
(
"Yuneec E90"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
metaData
=
new
CameraMetaData
(
metaData
=
new
CameraMetaData
(
tr
(
"Flir Duo R"
),
"Flir Duo R"
,
tr
(
"Flir"
),
tr
(
"Duo R"
),
160
,
// sensorWidth
160
,
// sensorWidth
120
,
// sensorHeight
120
,
// sensorHeight
1920
,
// imageWidth
1920
,
// imageWidth
...
@@ -685,6 +760,7 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
...
@@ -685,6 +760,7 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle*)
true
,
// true: landscape orientation
true
,
// true: landscape orientation
true
,
// true: camera is fixed orientation
true
,
// true: camera is fixed orientation
0
,
// minimum trigger interval
0
,
// minimum trigger interval
tr
(
"Flir Duo R"
),
// SHOULD BE BLANK FOR NEWLY ADDED CAMERAS. Deprecated translation from older builds.
this
);
// parent
this
);
// parent
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
_cameraList
.
append
(
QVariant
::
fromValue
(
metaData
));
...
...
src/MissionManager/CameraCalc.FactMetaData.json
View file @
f0df0818
src/MissionManager/CameraCalc.cc
View file @
f0df0818
...
@@ -29,9 +29,7 @@ const char* CameraCalc::_jsonCameraSpecTypeKey = "CameraSpecType";
...
@@ -29,9 +29,7 @@ const char* CameraCalc::_jsonCameraSpecTypeKey = "CameraSpecType";
CameraCalc
::
CameraCalc
(
PlanMasterController
*
masterController
,
const
QString
&
settingsGroup
,
QObject
*
parent
)
CameraCalc
::
CameraCalc
(
PlanMasterController
*
masterController
,
const
QString
&
settingsGroup
,
QObject
*
parent
)
:
CameraSpec
(
settingsGroup
,
parent
)
:
CameraSpec
(
settingsGroup
,
parent
)
,
_dirty
(
false
)
,
_knownCameraList
(
masterController
->
controllerVehicle
()
->
staticCameraList
())
,
_disableRecalc
(
false
)
,
_distanceToSurfaceRelative
(
true
)
,
_metaDataMap
(
FactMetaData
::
createMapFromJsonFile
(
QStringLiteral
(
":/json/CameraCalc.FactMetaData.json"
),
this
))
,
_metaDataMap
(
FactMetaData
::
createMapFromJsonFile
(
QStringLiteral
(
":/json/CameraCalc.FactMetaData.json"
),
this
))
,
_cameraNameFact
(
settingsGroup
,
_metaDataMap
[
cameraNameName
])
,
_cameraNameFact
(
settingsGroup
,
_metaDataMap
[
cameraNameName
])
,
_valueSetIsDistanceFact
(
settingsGroup
,
_metaDataMap
[
valueSetIsDistanceName
])
,
_valueSetIsDistanceFact
(
settingsGroup
,
_metaDataMap
[
valueSetIsDistanceName
])
...
@@ -41,9 +39,6 @@ CameraCalc::CameraCalc(PlanMasterController* masterController, const QString& se
...
@@ -41,9 +39,6 @@ CameraCalc::CameraCalc(PlanMasterController* masterController, const QString& se
,
_sideOverlapFact
(
settingsGroup
,
_metaDataMap
[
sideOverlapName
])
,
_sideOverlapFact
(
settingsGroup
,
_metaDataMap
[
sideOverlapName
])
,
_adjustedFootprintSideFact
(
settingsGroup
,
_metaDataMap
[
adjustedFootprintSideName
])
,
_adjustedFootprintSideFact
(
settingsGroup
,
_metaDataMap
[
adjustedFootprintSideName
])
,
_adjustedFootprintFrontalFact
(
settingsGroup
,
_metaDataMap
[
adjustedFootprintFrontalName
])
,
_adjustedFootprintFrontalFact
(
settingsGroup
,
_metaDataMap
[
adjustedFootprintFrontalName
])
,
_imageFootprintSide
(
0
)
,
_imageFootprintFrontal
(
0
)
,
_knownCameraList
(
masterController
->
controllerVehicle
()
->
staticCameraList
())
{
{
QQmlEngine
::
setObjectOwnership
(
this
,
QQmlEngine
::
CppOwnership
);
QQmlEngine
::
setObjectOwnership
(
this
,
QQmlEngine
::
CppOwnership
);
...
@@ -72,7 +67,18 @@ CameraCalc::CameraCalc(PlanMasterController* masterController, const QString& se
...
@@ -72,7 +67,18 @@ CameraCalc::CameraCalc(PlanMasterController* masterController, const QString& se
connect
(
focalLength
(),
&
Fact
::
rawValueChanged
,
this
,
&
CameraCalc
::
_recalcTriggerDistance
);
connect
(
focalLength
(),
&
Fact
::
rawValueChanged
,
this
,
&
CameraCalc
::
_recalcTriggerDistance
);
connect
(
landscape
(),
&
Fact
::
rawValueChanged
,
this
,
&
CameraCalc
::
_recalcTriggerDistance
);
connect
(
landscape
(),
&
Fact
::
rawValueChanged
,
this
,
&
CameraCalc
::
_recalcTriggerDistance
);
// Build the brand list from known cameras
_cameraBrandList
.
append
(
xlatManualCameraName
());
_cameraBrandList
.
append
(
xlatCustomCameraName
());
for
(
int
cameraIndex
=
0
;
cameraIndex
<
_knownCameraList
.
count
();
cameraIndex
++
)
{
CameraMetaData
*
cameraMetaData
=
_knownCameraList
[
cameraIndex
].
value
<
CameraMetaData
*>
();
if
(
!
_cameraBrandList
.
contains
(
cameraMetaData
->
brand
))
{
_cameraBrandList
.
append
(
cameraMetaData
->
brand
);
}
}
_cameraNameChanged
();
_cameraNameChanged
();
_setBrandModelFromCanonicalName
(
_cameraNameFact
.
rawValue
().
toString
());
setDirty
(
false
);
setDirty
(
false
);
}
}
...
@@ -93,48 +99,43 @@ void CameraCalc::_cameraNameChanged(void)
...
@@ -93,48 +99,43 @@ void CameraCalc::_cameraNameChanged(void)
QString
cameraName
=
_cameraNameFact
.
rawValue
().
toString
();
QString
cameraName
=
_cameraNameFact
.
rawValue
().
toString
();
// Validate known camera name
bool
foundKnownCamera
=
false
;
CameraMetaData
*
cameraMetaData
=
nullptr
;
if
(
!
isManualCamera
()
&&
!
isCustomCamera
())
{
for
(
int
cameraIndex
=
0
;
cameraIndex
<
_knownCameraList
.
count
();
cameraIndex
++
)
{
cameraMetaData
=
_knownCameraList
[
cameraIndex
].
value
<
CameraMetaData
*>
();
if
(
cameraName
==
cameraMetaData
->
name
())
{
foundKnownCamera
=
true
;
break
;
}
}
if
(
!
foundKnownCamera
)
{
// This will cause another camera changed signal which will recurse back to this routine
_cameraNameFact
.
setRawValue
(
customCameraName
());
return
;
}
}
_disableRecalc
=
true
;
if
(
foundKnownCamera
)
{
sensorWidth
()
->
setRawValue
(
cameraMetaData
->
sensorWidth
());
sensorHeight
()
->
setRawValue
(
cameraMetaData
->
sensorHeight
());
imageWidth
()
->
setRawValue
(
cameraMetaData
->
imageWidth
());
imageHeight
()
->
setRawValue
(
cameraMetaData
->
imageHeight
());
focalLength
()
->
setRawValue
(
cameraMetaData
->
focalLength
());
landscape
()
->
setRawValue
(
cameraMetaData
->
landscape
());
fixedOrientation
()
->
setRawValue
(
cameraMetaData
->
fixedOrientation
());
minTriggerInterval
()
->
setRawValue
(
cameraMetaData
->
minTriggerInterval
());
}
else
{
if
(
isManualCamera
()
||
isCustomCamera
())
{
if
(
isManualCamera
()
||
isCustomCamera
())
{
// These values are unknown for these types
fixedOrientation
()
->
setRawValue
(
false
);
fixedOrientation
()
->
setRawValue
(
false
);
minTriggerInterval
()
->
setRawValue
(
0
);
minTriggerInterval
()
->
setRawValue
(
0
);
if
(
isManualCamera
()
&&
!
valueSetIsDistance
()
->
rawValue
().
toBool
())
{
if
(
isManualCamera
()
&&
!
valueSetIsDistance
()
->
rawValue
().
toBool
())
{
valueSetIsDistance
()
->
setRawValue
(
true
);
valueSetIsDistance
()
->
setRawValue
(
true
);
}
}
}
else
{
}
else
{
qWarning
()
<<
"Internal Error: Not known camera, but now manual or custom either"
;
// Look for known camera
CameraMetaData
*
knownCameraMetaData
=
nullptr
;
for
(
int
cameraIndex
=
0
;
cameraIndex
<
_knownCameraList
.
count
();
cameraIndex
++
)
{
CameraMetaData
*
cameraMetaData
=
_knownCameraList
[
cameraIndex
].
value
<
CameraMetaData
*>
();
if
(
cameraName
==
cameraMetaData
->
canonicalName
)
{
knownCameraMetaData
=
cameraMetaData
;
break
;
}
}
}
if
(
!
knownCameraMetaData
)
{
// Lookup failed. Force to custom as fallback.
// This will cause another camera changed signal which will recurse back into this routine
_cameraNameFact
.
setRawValue
(
canonicalCustomCameraName
());
return
;
}
}
_disableRecalc
=
true
;
sensorWidth
()
->
setRawValue
(
knownCameraMetaData
->
sensorWidth
);
sensorHeight
()
->
setRawValue
(
knownCameraMetaData
->
sensorHeight
);
imageWidth
()
->
setRawValue
(
knownCameraMetaData
->
imageWidth
);
imageHeight
()
->
setRawValue
(
knownCameraMetaData
->
imageHeight
);
focalLength
()
->
setRawValue
(
knownCameraMetaData
->
focalLength
);
landscape
()
->
setRawValue
(
knownCameraMetaData
->
landscape
);
fixedOrientation
()
->
setRawValue
(
knownCameraMetaData
->
fixedOrientation
);
minTriggerInterval
()
->
setRawValue
(
knownCameraMetaData
->
minTriggerInterval
);
_disableRecalc
=
false
;
_disableRecalc
=
false
;
}
_recalcTriggerDistance
();
_recalcTriggerDistance
();
_adjustDistanceToSurfaceRelative
();
_adjustDistanceToSurfaceRelative
();
...
@@ -212,9 +213,9 @@ bool CameraCalc::load(const QJsonObject& json, QString& errorString)
...
@@ -212,9 +213,9 @@ bool CameraCalc::load(const QJsonObject& json, QString& errorString)
// _jsonCameraNameKey only set if CameraSpecKnown
// _jsonCameraNameKey only set if CameraSpecKnown
int
cameraSpec
=
v1Json
[
_jsonCameraSpecTypeKey
].
toInt
(
CameraSpecNone
);
int
cameraSpec
=
v1Json
[
_jsonCameraSpecTypeKey
].
toInt
(
CameraSpecNone
);
if
(
cameraSpec
==
CameraSpecCustom
)
{
if
(
cameraSpec
==
CameraSpecCustom
)
{
v1Json
[
cameraNameName
]
=
customCameraName
();
v1Json
[
cameraNameName
]
=
c
anonicalC
ustomCameraName
();
}
else
if
(
cameraSpec
==
CameraSpecNone
)
{
}
else
if
(
cameraSpec
==
CameraSpecNone
)
{
v1Json
[
cameraNameName
]
=
m
anualCameraName
();
v1Json
[
cameraNameName
]
=
canonicalM
anualCameraName
();
}
}
v1Json
.
remove
(
_jsonCameraSpecTypeKey
);
v1Json
.
remove
(
_jsonCameraSpecTypeKey
);
v1Json
[
JsonHelper
::
jsonVersionKey
]
=
1
;
v1Json
[
JsonHelper
::
jsonVersionKey
]
=
1
;
...
@@ -241,11 +242,15 @@ bool CameraCalc::load(const QJsonObject& json, QString& errorString)
...
@@ -241,11 +242,15 @@ bool CameraCalc::load(const QJsonObject& json, QString& errorString)
_distanceToSurfaceRelative
=
v1Json
[
distanceToSurfaceRelativeName
].
toBool
();
_distanceToSurfaceRelative
=
v1Json
[
distanceToSurfaceRelativeName
].
toBool
();
_cameraNameFact
.
setRawValue
(
v1Json
[
cameraNameName
].
toString
());
_adjustedFootprintSideFact
.
setRawValue
(
v1Json
[
adjustedFootprintSideName
].
toDouble
());
_adjustedFootprintSideFact
.
setRawValue
(
v1Json
[
adjustedFootprintSideName
].
toDouble
());
_adjustedFootprintFrontalFact
.
setRawValue
(
v1Json
[
adjustedFootprintFrontalName
].
toDouble
());
_adjustedFootprintFrontalFact
.
setRawValue
(
v1Json
[
adjustedFootprintFrontalName
].
toDouble
());
_distanceToSurfaceFact
.
setRawValue
(
v1Json
[
distanceToSurfaceName
].
toDouble
());
_distanceToSurfaceFact
.
setRawValue
(
v1Json
[
distanceToSurfaceName
].
toDouble
());
// We have to clean up camera names. Older builds incorrectly used translated the camera names in the persisted plan file.
// Newer builds use a canonical english camera name in plan files.
QString
canonicalCameraName
=
_validCanonicalCameraName
(
v1Json
[
cameraNameName
].
toString
());
_cameraNameFact
.
setRawValue
(
canonicalCameraName
);
if
(
!
isManualCamera
())
{
if
(
!
isManualCamera
())
{
QList
<
JsonHelper
::
KeyValidateInfo
>
keyInfoList2
=
{
QList
<
JsonHelper
::
KeyValidateInfo
>
keyInfoList2
=
{
{
valueSetIsDistanceName
,
QJsonValue
::
Bool
,
true
},
{
valueSetIsDistanceName
,
QJsonValue
::
Bool
,
true
},
...
@@ -271,15 +276,29 @@ bool CameraCalc::load(const QJsonObject& json, QString& errorString)
...
@@ -271,15 +276,29 @@ bool CameraCalc::load(const QJsonObject& json, QString& errorString)
_disableRecalc
=
false
;
_disableRecalc
=
false
;
_setBrandModelFromCanonicalName
(
canonicalCameraName
);
return
true
;
return
true
;
}
}
QString
CameraCalc
::
customCameraName
(
void
)
QString
CameraCalc
::
canonicalCustomCameraName
(
void
)
{
// This string should NOT be translated
return
"Custom Camera"
;
}
QString
CameraCalc
::
canonicalManualCameraName
(
void
)
{
// This string should NOT be translated
return
"Manual (no camera specs)"
;
}
QString
CameraCalc
::
xlatCustomCameraName
(
void
)
{
{
return
tr
(
"Custom Camera"
);
return
tr
(
"Custom Camera"
);
}
}
QString
CameraCalc
::
m
anualCameraName
(
void
)
QString
CameraCalc
::
xlatM
anualCameraName
(
void
)
{
{
return
tr
(
"Manual (no camera specs)"
);
return
tr
(
"Manual (no camera specs)"
);
}
}
...
@@ -303,3 +322,122 @@ void CameraCalc::_setDirty(void)
...
@@ -303,3 +322,122 @@ void CameraCalc::_setDirty(void)
{
{
setDirty
(
true
);
setDirty
(
true
);
}
}
void
CameraCalc
::
setCameraBrand
(
const
QString
&
cameraBrand
)
{
// Note that cameraBrand can also be manual or custom camera
if
(
cameraBrand
!=
_cameraBrand
)
{
QString
newCameraName
=
cameraBrand
;
_cameraBrand
=
cameraBrand
;
_cameraModel
.
clear
();
if
(
_cameraBrand
!=
xlatManualCameraName
()
&&
_cameraBrand
!=
xlatCustomCameraName
())
{
CameraMetaData
*
firstCameraMetaData
=
nullptr
;
for
(
int
cameraIndex
=
0
;
cameraIndex
<
_knownCameraList
.
count
();
cameraIndex
++
)
{
firstCameraMetaData
=
_knownCameraList
[
cameraIndex
].
value
<
CameraMetaData
*>
();
if
(
firstCameraMetaData
->
brand
==
_cameraBrand
)
{
break
;
}
}
newCameraName
=
firstCameraMetaData
->
canonicalName
;
_cameraModel
=
firstCameraMetaData
->
model
;
}
emit
cameraBrandChanged
();
emit
cameraModelChanged
();
_rebuildCameraModelList
();
_cameraNameFact
.
setRawValue
(
newCameraName
);
}
}
void
CameraCalc
::
setCameraModel
(
const
QString
&
cameraModel
)
{
if
(
cameraModel
!=
_cameraModel
)
{
_cameraModel
=
cameraModel
;
emit
cameraModelChanged
();
for
(
int
cameraIndex
=
0
;
cameraIndex
<
_knownCameraList
.
count
();
cameraIndex
++
)
{
CameraMetaData
*
cameraMetaData
=
_knownCameraList
[
cameraIndex
].
value
<
CameraMetaData
*>
();
if
(
cameraMetaData
->
brand
==
_cameraBrand
&&
cameraMetaData
->
model
==
_cameraModel
)
{
_cameraNameFact
.
setRawValue
(
cameraMetaData
->
canonicalName
);
break
;
}
}
}
}
void
CameraCalc
::
_setBrandModelFromCanonicalName
(
const
QString
&
cameraName
)
{
_cameraBrand
=
cameraName
;
_cameraModel
.
clear
();
_cameraModelList
.
clear
();
if
(
cameraName
!=
canonicalManualCameraName
()
&&
cameraName
!=
canonicalCustomCameraName
())
{
for
(
int
cameraIndex
=
0
;
cameraIndex
<
_knownCameraList
.
count
();
cameraIndex
++
)
{
CameraMetaData
*
cameraMetaData
=
_knownCameraList
[
cameraIndex
].
value
<
CameraMetaData
*>
();
if
(
cameraMetaData
->
canonicalName
==
cameraName
)
{
_cameraBrand
=
cameraMetaData
->
brand
;
_cameraModel
=
cameraMetaData
->
model
;
break
;
}
}
}
emit
cameraBrandChanged
();
emit
cameraModelChanged
();
_rebuildCameraModelList
();
}
void
CameraCalc
::
_rebuildCameraModelList
(
void
)
{
_cameraModelList
.
clear
();
for
(
int
cameraIndex
=
0
;
cameraIndex
<
_knownCameraList
.
count
();
cameraIndex
++
)
{
CameraMetaData
*
cameraMetaData
=
_knownCameraList
[
cameraIndex
].
value
<
CameraMetaData
*>
();
if
(
cameraMetaData
->
brand
==
_cameraBrand
)
{
_cameraModelList
.
append
(
cameraMetaData
->
model
);
}
}
emit
cameraModelListChanged
();
}
void
CameraCalc
::
_setCameraNameFromV3TransectLoad
(
const
QString
&
cameraName
)
{
// We don't recalc here since the rest of the camera values are already loaded from the json
_disableRecalc
=
true
;
QString
canonicalCameraName
=
_validCanonicalCameraName
(
cameraName
);
_cameraNameFact
.
setRawValue
(
cameraName
);
_disableRecalc
=
true
;
_setBrandModelFromCanonicalName
(
canonicalCameraName
);
}
QString
CameraCalc
::
_validCanonicalCameraName
(
const
QString
&
cameraName
)
{
QString
canonicalCameraName
=
cameraName
;
if
(
canonicalCameraName
!=
canonicalCustomCameraName
()
&&
canonicalCameraName
!=
canonicalManualCameraName
())
{
if
(
cameraName
==
xlatManualCameraName
())
{
canonicalCameraName
=
canonicalManualCameraName
();
}
else
if
(
cameraName
==
xlatCustomCameraName
())
{
canonicalCameraName
=
canonicalCustomCameraName
();
}
else
{
// Look for known camera
for
(
int
cameraIndex
=
0
;
cameraIndex
<
_knownCameraList
.
count
();
cameraIndex
++
)
{
CameraMetaData
*
cameraMetaData
=
_knownCameraList
[
cameraIndex
].
value
<
CameraMetaData
*>
();
if
(
cameraName
==
cameraMetaData
->
canonicalName
||
cameraName
==
cameraMetaData
->
deprecatedTranslatedName
)
{
return
cameraMetaData
->
canonicalName
;
}
}
canonicalCameraName
=
canonicalCustomCameraName
();
}
}
return
canonicalCameraName
;
}
src/MissionManager/CameraCalc.h
View file @
f0df0818
...
@@ -21,11 +21,14 @@ class CameraCalc : public CameraSpec
...
@@ -21,11 +21,14 @@ class CameraCalc : public CameraSpec
public:
public:
CameraCalc
(
PlanMasterController
*
masterController
,
const
QString
&
settingsGroup
,
QObject
*
parent
=
nullptr
);
CameraCalc
(
PlanMasterController
*
masterController
,
const
QString
&
settingsGroup
,
QObject
*
parent
=
nullptr
);
Q_PROPERTY
(
QString
customCameraName
READ
customCameraName
CONSTANT
)
///< C
amera name for custom camera setting
Q_PROPERTY
(
QString
xlatCustomCameraName
READ
xlatCustomCameraName
CONSTANT
)
///< User visible c
amera name for custom camera setting
Q_PROPERTY
(
QString
manualCameraName
READ
manualCameraName
CONSTANT
)
///< C
amera name for manual camera setting
Q_PROPERTY
(
QString
xlatManualCameraName
READ
xlatManualCameraName
CONSTANT
)
///< User visible c
amera name for manual camera setting
Q_PROPERTY
(
bool
isManualCamera
READ
isManualCamera
NOTIFY
isManualCameraChanged
)
Q_PROPERTY
(
bool
isManualCamera
READ
isManualCamera
NOTIFY
isManualCameraChanged
)
Q_PROPERTY
(
bool
isCustomCamera
READ
isCustomCamera
NOTIFY
isCustomCameraChanged
)
Q_PROPERTY
(
bool
isCustomCamera
READ
isCustomCamera
NOTIFY
isCustomCameraChanged
)
Q_PROPERTY
(
Fact
*
cameraName
READ
cameraName
CONSTANT
)
Q_PROPERTY
(
QString
cameraBrand
MEMBER
_cameraBrand
WRITE
setCameraBrand
NOTIFY
cameraBrandChanged
)
Q_PROPERTY
(
QString
cameraModel
MEMBER
_cameraModel
WRITE
setCameraModel
NOTIFY
cameraModelChanged
)
Q_PROPERTY
(
QStringList
cameraBrandList
MEMBER
_cameraBrandList
CONSTANT
)
Q_PROPERTY
(
QStringList
cameraModelList
MEMBER
_cameraModelList
NOTIFY
cameraModelListChanged
)
Q_PROPERTY
(
Fact
*
valueSetIsDistance
READ
valueSetIsDistance
CONSTANT
)
///< true: distance specified, resolution calculated
Q_PROPERTY
(
Fact
*
valueSetIsDistance
READ
valueSetIsDistance
CONSTANT
)
///< true: distance specified, resolution calculated
Q_PROPERTY
(
Fact
*
distanceToSurface
READ
distanceToSurface
CONSTANT
)
///< Distance to surface for image foot print calculation
Q_PROPERTY
(
Fact
*
distanceToSurface
READ
distanceToSurface
CONSTANT
)
///< Distance to surface for image foot print calculation
Q_PROPERTY
(
Fact
*
imageDensity
READ
imageDensity
CONSTANT
)
///< Image density on surface (cm/px)
Q_PROPERTY
(
Fact
*
imageDensity
READ
imageDensity
CONSTANT
)
///< Image density on surface (cm/px)
...
@@ -46,10 +49,11 @@ public:
...
@@ -46,10 +49,11 @@ public:
Q_PROPERTY
(
double
imageFootprintSide
READ
imageFootprintSide
NOTIFY
imageFootprintSideChanged
)
///< Size of image size side in meters
Q_PROPERTY
(
double
imageFootprintSide
READ
imageFootprintSide
NOTIFY
imageFootprintSideChanged
)
///< Size of image size side in meters
Q_PROPERTY
(
double
imageFootprintFrontal
READ
imageFootprintFrontal
NOTIFY
imageFootprintFrontalChanged
)
///< Size of image size frontal in meters
Q_PROPERTY
(
double
imageFootprintFrontal
READ
imageFootprintFrontal
NOTIFY
imageFootprintFrontalChanged
)
///< Size of image size frontal in meters
static
QString
customCameraName
(
void
);
static
QString
xlatCustomCameraName
(
void
);
static
QString
manualCameraName
(
void
);
static
QString
xlatManualCameraName
(
void
);
static
QString
canonicalCustomCameraName
(
void
);
static
QString
canonicalManualCameraName
(
void
);
Fact
*
cameraName
(
void
)
{
return
&
_cameraNameFact
;
}
Fact
*
valueSetIsDistance
(
void
)
{
return
&
_valueSetIsDistanceFact
;
}
Fact
*
valueSetIsDistance
(
void
)
{
return
&
_valueSetIsDistanceFact
;
}
Fact
*
distanceToSurface
(
void
)
{
return
&
_distanceToSurfaceFact
;
}
Fact
*
distanceToSurface
(
void
)
{
return
&
_distanceToSurfaceFact
;
}
Fact
*
imageDensity
(
void
)
{
return
&
_imageDensityFact
;
}
Fact
*
imageDensity
(
void
)
{
return
&
_imageDensityFact
;
}
...
@@ -67,18 +71,22 @@ public:
...
@@ -67,18 +71,22 @@ public:
const
Fact
*
adjustedFootprintFrontal
(
void
)
const
{
return
&
_adjustedFootprintFrontalFact
;
}
const
Fact
*
adjustedFootprintFrontal
(
void
)
const
{
return
&
_adjustedFootprintFrontalFact
;
}
bool
dirty
(
void
)
const
{
return
_dirty
;
}
bool
dirty
(
void
)
const
{
return
_dirty
;
}
bool
isManualCamera
(
void
)
const
{
return
_cameraNameFact
.
rawValue
().
toString
()
==
m
anualCameraName
();
}
bool
isManualCamera
(
void
)
const
{
return
_cameraNameFact
.
rawValue
().
toString
()
==
canonicalM
anualCameraName
();
}
bool
isCustomCamera
(
void
)
const
{
return
_cameraNameFact
.
rawValue
().
toString
()
==
customCameraName
();
}
bool
isCustomCamera
(
void
)
const
{
return
_cameraNameFact
.
rawValue
().
toString
()
==
c
anonicalC
ustomCameraName
();
}
double
imageFootprintSide
(
void
)
const
{
return
_imageFootprintSide
;
}
double
imageFootprintSide
(
void
)
const
{
return
_imageFootprintSide
;
}
double
imageFootprintFrontal
(
void
)
const
{
return
_imageFootprintFrontal
;
}
double
imageFootprintFrontal
(
void
)
const
{
return
_imageFootprintFrontal
;
}
bool
distanceToSurfaceRelative
(
void
)
const
{
return
_distanceToSurfaceRelative
;
}
bool
distanceToSurfaceRelative
(
void
)
const
{
return
_distanceToSurfaceRelative
;
}
void
setDirty
(
bool
dirty
);
void
setDirty
(
bool
dirty
);
void
setDistanceToSurfaceRelative
(
bool
distanceToSurfaceRelative
);
void
setDistanceToSurfaceRelative
(
bool
distanceToSurfaceRelative
);
void
setCameraBrand
(
const
QString
&
cameraBrand
);
void
setCameraModel
(
const
QString
&
cameraModel
);
void
save
(
QJsonObject
&
json
)
const
;
void
save
(
QJsonObject
&
json
)
const
;
bool
load
(
const
QJsonObject
&
json
,
QString
&
errorString
);
bool
load
(
const
QJsonObject
&
json
,
QString
&
errorString
);
void
_setCameraNameFromV3TransectLoad
(
const
QString
&
cameraName
);
static
const
char
*
cameraNameName
;
static
const
char
*
cameraNameName
;
static
const
char
*
valueSetIsDistanceName
;
static
const
char
*
valueSetIsDistanceName
;
static
const
char
*
distanceToSurfaceName
;
static
const
char
*
distanceToSurfaceName
;
...
@@ -96,6 +104,10 @@ signals:
...
@@ -96,6 +104,10 @@ signals:
void
distanceToSurfaceRelativeChanged
(
bool
distanceToSurfaceRelative
);
void
distanceToSurfaceRelativeChanged
(
bool
distanceToSurfaceRelative
);
void
isManualCameraChanged
(
void
);
void
isManualCameraChanged
(
void
);
void
isCustomCameraChanged
(
void
);
void
isCustomCameraChanged
(
void
);
void
cameraBrandChanged
(
void
);
void
cameraModelChanged
(
void
);
void
cameraModelListChanged
(
void
);
void
updateCameraStats
(
void
);
private
slots
:
private
slots
:
void
_recalcTriggerDistance
(
void
);
void
_recalcTriggerDistance
(
void
);
...
@@ -104,9 +116,20 @@ private slots:
...
@@ -104,9 +116,20 @@ private slots:
void
_cameraNameChanged
(
void
);
void
_cameraNameChanged
(
void
);
private:
private:
bool
_dirty
;
void
_setBrandModelFromCanonicalName
(
const
QString
&
cameraName
);
bool
_disableRecalc
;
void
_rebuildCameraModelList
(
void
);
bool
_distanceToSurfaceRelative
;
QString
_validCanonicalCameraName
(
const
QString
&
cameraName
);
bool
_dirty
=
false
;
bool
_disableRecalc
=
false
;
QString
_cameraBrand
;
QString
_cameraModel
;
QStringList
_cameraBrandList
;
QStringList
_cameraModelList
;
bool
_distanceToSurfaceRelative
=
true
;
double
_imageFootprintSide
=
0
;
double
_imageFootprintFrontal
=
0
;
QVariantList
_knownCameraList
;
QMap
<
QString
,
FactMetaData
*>
_metaDataMap
;
QMap
<
QString
,
FactMetaData
*>
_metaDataMap
;
...
@@ -119,11 +142,6 @@ private:
...
@@ -119,11 +142,6 @@ private:
SettingsFact
_adjustedFootprintSideFact
;
SettingsFact
_adjustedFootprintSideFact
;
SettingsFact
_adjustedFootprintFrontalFact
;
SettingsFact
_adjustedFootprintFrontalFact
;
double
_imageFootprintSide
;
double
_imageFootprintFrontal
;
QVariantList
_knownCameraList
;
// The following are deprecated usage and only included in order to convert older formats
// The following are deprecated usage and only included in order to convert older formats
enum
CameraSpecType
{
enum
CameraSpecType
{
...
...
src/MissionManager/CameraCalcTest.cc
View file @
f0df0818
...
@@ -23,7 +23,7 @@ void CameraCalcTest::init(void)
...
@@ -23,7 +23,7 @@ void CameraCalcTest::init(void)
_masterController
=
new
PlanMasterController
(
this
);
_masterController
=
new
PlanMasterController
(
this
);
_controllerVehicle
=
_masterController
->
controllerVehicle
();
_controllerVehicle
=
_masterController
->
controllerVehicle
();
_cameraCalc
=
new
CameraCalc
(
_masterController
,
"CameraCalcUnitTest"
/* settingsGroup */
,
this
);
_cameraCalc
=
new
CameraCalc
(
_masterController
,
"CameraCalcUnitTest"
/* settingsGroup */
,
this
);
_cameraCalc
->
cameraName
()
->
setRawValue
(
_cameraCalc
->
c
ustomCameraName
());
_cameraCalc
->
setCameraBrand
(
CameraCalc
::
canonicalC
ustomCameraName
());
_cameraCalc
->
setDirty
(
false
);
_cameraCalc
->
setDirty
(
false
);
_rgSignals
[
dirtyChangedIndex
]
=
SIGNAL
(
dirtyChanged
(
bool
));
_rgSignals
[
dirtyChangedIndex
]
=
SIGNAL
(
dirtyChanged
(
bool
));
...
@@ -87,7 +87,7 @@ void CameraCalcTest::_testDirty(void)
...
@@ -87,7 +87,7 @@ void CameraCalcTest::_testDirty(void)
QVERIFY
(
_cameraCalc
->
dirty
());
QVERIFY
(
_cameraCalc
->
dirty
());
_multiSpy
->
clearAllSignals
();
_multiSpy
->
clearAllSignals
();
_cameraCalc
->
cameraName
()
->
setRawValue
(
_cameraCalc
->
m
anualCameraName
());
_cameraCalc
->
setCameraBrand
(
CameraCalc
::
canonicalM
anualCameraName
());
QVERIFY
(
_cameraCalc
->
dirty
());
QVERIFY
(
_cameraCalc
->
dirty
());
_multiSpy
->
clearAllSignals
();
_multiSpy
->
clearAllSignals
();
}
}
...
...
src/MissionManager/StructureScanComplexItemTest.cc
View file @
f0df0818
...
@@ -85,7 +85,7 @@ void StructureScanComplexItemTest::_initItem(void)
...
@@ -85,7 +85,7 @@ void StructureScanComplexItemTest::_initItem(void)
mapPolygon
->
appendVertex
(
vertex
);
mapPolygon
->
appendVertex
(
vertex
);
}
}
_structureScanItem
->
cameraCalc
()
->
cameraName
()
->
setRawValue
(
CameraCalc
::
m
anualCameraName
());
_structureScanItem
->
cameraCalc
()
->
setCameraBrand
(
CameraCalc
::
canonicalM
anualCameraName
());
_structureScanItem
->
layers
()
->
setCookedValue
(
2
);
_structureScanItem
->
layers
()
->
setCookedValue
(
2
);
_structureScanItem
->
setDirty
(
false
);
_structureScanItem
->
setDirty
(
false
);
...
...
src/MissionManager/SurveyComplexItem.cc
View file @
f0df0818
...
@@ -324,7 +324,7 @@ bool SurveyComplexItem::_loadV3(const QJsonObject& complexObject, int sequenceNu
...
@@ -324,7 +324,7 @@ bool SurveyComplexItem::_loadV3(const QJsonObject& complexObject, int sequenceNu
_cameraCalc
.
adjustedFootprintFrontal
()
->
setRawValue
(
complexObject
[
_jsonV3CameraTriggerDistanceKey
].
toDouble
());
_cameraCalc
.
adjustedFootprintFrontal
()
->
setRawValue
(
complexObject
[
_jsonV3CameraTriggerDistanceKey
].
toDouble
());
if
(
manualGrid
)
{
if
(
manualGrid
)
{
_cameraCalc
.
cameraName
()
->
setRawValue
(
_cameraCalc
.
m
anualCameraName
());
_cameraCalc
.
setCameraBrand
(
CameraCalc
::
canonicalM
anualCameraName
());
}
else
{
}
else
{
if
(
!
complexObject
.
contains
(
_jsonV3CameraObjectKey
))
{
if
(
!
complexObject
.
contains
(
_jsonV3CameraObjectKey
))
{
errorString
=
tr
(
"%1 but %2 object is missing"
).
arg
(
"manualGrid = false"
).
arg
(
"camera"
);
errorString
=
tr
(
"%1 but %2 object is missing"
).
arg
(
"manualGrid = false"
).
arg
(
"camera"
);
...
@@ -359,7 +359,6 @@ bool SurveyComplexItem::_loadV3(const QJsonObject& complexObject, int sequenceNu
...
@@ -359,7 +359,6 @@ bool SurveyComplexItem::_loadV3(const QJsonObject& complexObject, int sequenceNu
return
false
;
return
false
;
}
}
_cameraCalc
.
cameraName
()
->
setRawValue
(
cameraObject
[
_jsonV3CameraNameKey
].
toString
());
_cameraCalc
.
landscape
()
->
setRawValue
(
cameraObject
[
_jsonV3CameraOrientationLandscapeKey
].
toBool
(
true
));
_cameraCalc
.
landscape
()
->
setRawValue
(
cameraObject
[
_jsonV3CameraOrientationLandscapeKey
].
toBool
(
true
));
_cameraCalc
.
frontalOverlap
()
->
setRawValue
(
cameraObject
[
_jsonV3FrontalOverlapKey
].
toInt
());
_cameraCalc
.
frontalOverlap
()
->
setRawValue
(
cameraObject
[
_jsonV3FrontalOverlapKey
].
toInt
());
_cameraCalc
.
sideOverlap
()
->
setRawValue
(
cameraObject
[
_jsonV3SideOverlapKey
].
toInt
());
_cameraCalc
.
sideOverlap
()
->
setRawValue
(
cameraObject
[
_jsonV3SideOverlapKey
].
toInt
());
...
@@ -371,6 +370,7 @@ bool SurveyComplexItem::_loadV3(const QJsonObject& complexObject, int sequenceNu
...
@@ -371,6 +370,7 @@ bool SurveyComplexItem::_loadV3(const QJsonObject& complexObject, int sequenceNu
_cameraCalc
.
minTriggerInterval
()
->
setRawValue
(
cameraObject
[
_jsonV3CameraMinTriggerIntervalKey
].
toDouble
(
0
));
_cameraCalc
.
minTriggerInterval
()
->
setRawValue
(
cameraObject
[
_jsonV3CameraMinTriggerIntervalKey
].
toDouble
(
0
));
_cameraCalc
.
imageDensity
()
->
setRawValue
(
cameraObject
[
_jsonV3GroundResolutionKey
].
toDouble
());
_cameraCalc
.
imageDensity
()
->
setRawValue
(
cameraObject
[
_jsonV3GroundResolutionKey
].
toDouble
());
_cameraCalc
.
fixedOrientation
()
->
setRawValue
(
false
);
_cameraCalc
.
fixedOrientation
()
->
setRawValue
(
false
);
_cameraCalc
.
_setCameraNameFromV3TransectLoad
(
cameraObject
[
_jsonV3CameraNameKey
].
toString
());
}
}
// Polygon shape
// Polygon shape
...
...
src/MissionManager/TransectStyleComplexItemTest.cc
View file @
f0df0818
...
@@ -20,7 +20,7 @@ void TransectStyleComplexItemTest::init(void)
...
@@ -20,7 +20,7 @@ void TransectStyleComplexItemTest::init(void)
_transectStyleItem
=
new
TestTransectStyleItem
(
_masterController
,
this
);
_transectStyleItem
=
new
TestTransectStyleItem
(
_masterController
,
this
);
_transectStyleItem
->
cameraTriggerInTurnAround
()
->
setRawValue
(
false
);
_transectStyleItem
->
cameraTriggerInTurnAround
()
->
setRawValue
(
false
);
_transectStyleItem
->
cameraCalc
()
->
cameraName
()
->
setRawValue
(
_transectStyleItem
->
cameraCalc
()
->
c
ustomCameraName
());
_transectStyleItem
->
cameraCalc
()
->
setCameraBrand
(
CameraCalc
::
canonicalC
ustomCameraName
());
_transectStyleItem
->
cameraCalc
()
->
valueSetIsDistance
()
->
setRawValue
(
true
);
_transectStyleItem
->
cameraCalc
()
->
valueSetIsDistance
()
->
setRawValue
(
true
);
_transectStyleItem
->
cameraCalc
()
->
distanceToSurface
()
->
setRawValue
(
100
);
_transectStyleItem
->
cameraCalc
()
->
distanceToSurface
()
->
setRawValue
(
100
);
_transectStyleItem
->
setDirty
(
false
);
_transectStyleItem
->
setDirty
(
false
);
...
@@ -192,9 +192,9 @@ void TransectStyleComplexItemTest::_testAltMode(void)
...
@@ -192,9 +192,9 @@ void TransectStyleComplexItemTest::_testAltMode(void)
// Manual camera allows non-relative altitudes, validate that changing back to known
// Manual camera allows non-relative altitudes, validate that changing back to known
// camera switches back to relative
// camera switches back to relative
_transectStyleItem
->
cameraCalc
()
->
cameraName
()
->
setRawValue
(
_transectStyleItem
->
cameraCalc
()
->
m
anualCameraName
());
_transectStyleItem
->
cameraCalc
()
->
setCameraBrand
(
CameraCalc
::
canonicalM
anualCameraName
());
_transectStyleItem
->
cameraCalc
()
->
setDistanceToSurfaceRelative
(
false
);
_transectStyleItem
->
cameraCalc
()
->
setDistanceToSurfaceRelative
(
false
);
_transectStyleItem
->
cameraCalc
()
->
cameraName
()
->
setRawValue
(
_transectStyleItem
->
cameraCalc
()
->
c
ustomCameraName
());
_transectStyleItem
->
cameraCalc
()
->
setCameraBrand
(
CameraCalc
::
canonicalC
ustomCameraName
());
QVERIFY
(
_transectStyleItem
->
cameraCalc
()
->
distanceToSurfaceRelative
());
QVERIFY
(
_transectStyleItem
->
cameraCalc
()
->
distanceToSurfaceRelative
());
// When you turn off terrain following mode make sure that the altitude mode changed back to relative altitudes
// When you turn off terrain following mode make sure that the altitude mode changed back to relative altitudes
...
...
src/PlanView/CameraCalcCamera.qml
View file @
f0df0818
...
@@ -17,42 +17,13 @@ Column {
...
@@ -17,42 +17,13 @@ Column {
property
var
cameraCalc
property
var
cameraCalc
property
real
_margin
:
ScreenTools
.
defaultFontPixelWidth
/
2
property
real
_margin
:
ScreenTools
.
defaultFontPixelWidth
/
2
property
string
_cameraName
:
cameraCalc
.
cameraName
.
value
property
real
_fieldWidth
:
ScreenTools
.
defaultFontPixelWidth
*
10.5
property
real
_fieldWidth
:
ScreenTools
.
defaultFontPixelWidth
*
10.5
property
var
_cameraList
:
[
]
property
var
_vehicle
:
QGroundControl
.
multiVehicleManager
.
activeVehicle
?
QGroundControl
.
multiVehicleManager
.
activeVehicle
:
QGroundControl
.
multiVehicleManager
.
offlineEditingVehicle
property
var
_vehicle
:
QGroundControl
.
multiVehicleManager
.
activeVehicle
?
QGroundControl
.
multiVehicleManager
.
activeVehicle
:
QGroundControl
.
multiVehicleManager
.
offlineEditingVehicle
property
var
_vehicleCameraList
:
_vehicle
?
_vehicle
.
staticCameraList
:
[]
property
var
_vehicleCameraList
:
_vehicle
?
_vehicle
.
staticCameraList
:
[]
property
bool
_cameraComboFilled
:
false
readonly
property
int
_gridTypeManual
:
0
Component.onCompleted
:{
readonly
property
int
_gridTypeCustomCamera
:
1
cameraBrandCombo
.
selectCurrentBrand
()
readonly
property
int
_gridTypeCamera
:
2
cameraModelCombo
.
selectCurrentModel
()
Component.onCompleted
:
_fillCameraCombo
()
on_CameraNameChanged
:
_updateSelectedCamera
()
function
_fillCameraCombo
()
{
_cameraComboFilled
=
true
_cameraList
.
push
(
cameraCalc
.
manualCameraName
)
_cameraList
.
push
(
cameraCalc
.
customCameraName
)
for
(
var
i
=
0
;
i
<
_vehicle
.
staticCameraList
.
length
;
i
++
)
{
_cameraList
.
push
(
_vehicle
.
staticCameraList
[
i
].
name
)
}
gridTypeCombo
.
model
=
_cameraList
_updateSelectedCamera
()
}
function
_updateSelectedCamera
()
{
if
(
_cameraComboFilled
)
{
var
knownCameraIndex
=
gridTypeCombo
.
find
(
_cameraName
)
if
(
knownCameraIndex
!==
-
1
)
{
gridTypeCombo
.
currentIndex
=
knownCameraIndex
}
else
{
console
.
log
(
"
Internal error: Known camera not found
"
,
_cameraName
)
gridTypeCombo
.
currentIndex
=
_gridTypeCustomCamera
}
}
}
}
QGCPalette
{
id
:
qgcPal
;
colorGroupEnabled
:
true
}
QGCPalette
{
id
:
qgcPal
;
colorGroupEnabled
:
true
}
...
@@ -67,13 +38,41 @@ Column {
...
@@ -67,13 +38,41 @@ Column {
spacing
:
_margin
spacing
:
_margin
QGCComboBox
{
QGCComboBox
{
id
:
gridTypeCombo
id
:
cameraBrandCombo
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
model
:
cameraCalc
.
cameraBrandList
onModelChanged
:
selectCurrentBrand
()
onActivated
:
cameraCalc
.
cameraBrand
=
currentText
Connections
{
target
:
cameraCalc
onCameraBrandChanged
:
cameraBrandCombo
.
selectCurrentBrand
()
}
function
selectCurrentBrand
()
{
currentIndex
=
cameraBrandCombo
.
find
(
cameraCalc
.
cameraBrand
)
}
}
QGCComboBox
{
id
:
cameraModelCombo
anchors.left
:
parent
.
left
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
anchors.right
:
parent
.
right
model
:
_cameraList
model
:
cameraCalc
.
cameraModelList
currentIndex
:
-
1
visible
:
!
cameraCalc
.
isManualCamera
&&
!
cameraCalc
.
isCustomCamera
onActivated
:
cameraCalc
.
cameraName
.
value
=
gridTypeCombo
.
textAt
(
index
)
onModelChanged
:
selectCurrentModel
()
}
// QGCComboxBox
onActivated
:
cameraCalc
.
cameraModel
=
currentText
Connections
{
target
:
cameraCalc
onCameraModelChanged
:
cameraModelCombo
.
selectCurrentModel
()
}
function
selectCurrentModel
()
{
currentIndex
=
cameraModelCombo
.
find
(
cameraCalc
.
cameraModel
)
}
}
// Camera based grid ui
// Camera based grid ui
Column
{
Column
{
...
@@ -108,7 +107,7 @@ Column {
...
@@ -108,7 +107,7 @@ Column {
anchors.left
:
parent
.
left
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
anchors.right
:
parent
.
right
spacing
:
_margin
spacing
:
_margin
visible
:
cameraCalc
.
isCustomCamera
enabled
:
cameraCalc
.
isCustomCamera
RowLayout
{
RowLayout
{
anchors.left
:
parent
.
left
anchors.left
:
parent
.
left
...
...
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