QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
vectorfield
qgsvectorfieldwindbarbsettings.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsvectorfieldwindbarbsettings.cpp
3
---------------------
4
begin : September 2026
5
copyright : (C) 2026 by Stefanos Natsis
6
email : uclaros at gmail dot com
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
#include "
qgsvectorfieldwindbarbsettings.h
"
17
18
#include <QString>
19
20
using namespace
Qt::StringLiterals;
21
22
void
QgsVectorFieldWindBarbSettings::readXml
(
const
QDomElement &elem )
23
{
24
mShaftLength = elem.attribute( u
"shaft-length"
_s, u
"10"
_s ).toDouble();
25
mShaftLengthUnits =
static_cast<
Qgis::RenderUnit
>
( elem.attribute( u
"shaft-length-units"
_s ).toInt() );
26
mMagnitudeMultiplier = elem.attribute( u
"magnitude-multiplier"
_s, u
"1"
_s ).toDouble();
27
mMagnitudeUnits =
static_cast<
Qgis::WindSpeedUnit
>
( elem.attribute( u
"magnitude-units"
_s, u
"0"
_s ).toInt() );
28
}
29
30
QDomElement
QgsVectorFieldWindBarbSettings::writeXml
( QDomDocument &doc )
const
31
{
32
QDomElement elem = doc.createElement( u
"vector-windbarb-settings"
_s );
33
elem.setAttribute( u
"shaft-length"
_s, mShaftLength );
34
elem.setAttribute( u
"shaft-length-units"
_s,
static_cast<
int
>
( mShaftLengthUnits ) );
35
elem.setAttribute( u
"magnitude-multiplier"
_s, mMagnitudeMultiplier );
36
elem.setAttribute( u
"magnitude-units"
_s,
static_cast<
int
>
( mMagnitudeUnits ) );
37
return
elem;
38
}
39
40
double
QgsVectorFieldWindBarbSettings::magnitudeMultiplier
()
const
41
{
42
switch
( mMagnitudeUnits )
43
{
44
case
Qgis::WindSpeedUnit::Knots
:
45
return
1.0;
46
case
Qgis::WindSpeedUnit::MetersPerSecond
:
47
return
3600.0 / 1852.0;
48
case
Qgis::WindSpeedUnit::KilometersPerHour
:
49
return
1.0 / 1.852;
50
case
Qgis::WindSpeedUnit::MilesPerHour
:
51
return
1.609344 / 1.852;
52
case
Qgis::WindSpeedUnit::FeetPerSecond
:
53
return
3600.0 / 1.852 / 5280.0 * 1.609344;
54
case
Qgis::WindSpeedUnit::OtherUnit
:
55
return
mMagnitudeMultiplier;
56
}
57
return
1.0;
// should not reach
58
}
59
60
void
QgsVectorFieldWindBarbSettings::setMagnitudeMultiplier
(
double
magnitudeMultiplier
)
61
{
62
mMagnitudeMultiplier =
magnitudeMultiplier
;
63
}
64
65
double
QgsVectorFieldWindBarbSettings::shaftLength
()
const
66
{
67
return
mShaftLength;
68
}
69
70
void
QgsVectorFieldWindBarbSettings::setShaftLength
(
double
shaftLength
)
71
{
72
mShaftLength =
shaftLength
;
73
}
74
75
Qgis::RenderUnit
QgsVectorFieldWindBarbSettings::shaftLengthUnits
()
const
76
{
77
return
mShaftLengthUnits;
78
}
79
80
void
QgsVectorFieldWindBarbSettings::setShaftLengthUnits
(
Qgis::RenderUnit
shaftLengthUnit )
81
{
82
mShaftLengthUnits = shaftLengthUnit;
83
}
84
85
Qgis::WindSpeedUnit
QgsVectorFieldWindBarbSettings::magnitudeUnits
()
const
86
{
87
return
mMagnitudeUnits;
88
}
89
90
void
QgsVectorFieldWindBarbSettings::setMagnitudeUnits
(
Qgis::WindSpeedUnit
units )
91
{
92
mMagnitudeUnits = units;
93
}
Qgis::WindSpeedUnit
WindSpeedUnit
Wind speed units.
Definition
qgis.h:5716
Qgis::WindSpeedUnit::FeetPerSecond
@ FeetPerSecond
Feet per second.
Definition
qgis.h:5721
Qgis::WindSpeedUnit::KilometersPerHour
@ KilometersPerHour
Kilometers per hour.
Definition
qgis.h:5718
Qgis::WindSpeedUnit::OtherUnit
@ OtherUnit
Other unit.
Definition
qgis.h:5722
Qgis::WindSpeedUnit::Knots
@ Knots
Knots (Nautical miles per hour).
Definition
qgis.h:5719
Qgis::WindSpeedUnit::MilesPerHour
@ MilesPerHour
Miles per hour.
Definition
qgis.h:5720
Qgis::WindSpeedUnit::MetersPerSecond
@ MetersPerSecond
Meters per second.
Definition
qgis.h:5717
Qgis::RenderUnit
RenderUnit
Rendering size units.
Definition
qgis.h:5758
QgsVectorFieldWindBarbSettings::magnitudeUnits
Qgis::WindSpeedUnit magnitudeUnits() const
Returns the units that the data are in.
Definition
qgsvectorfieldwindbarbsettings.cpp:85
QgsVectorFieldWindBarbSettings::shaftLength
double shaftLength() const
Returns the shaft length (in millimeters).
Definition
qgsvectorfieldwindbarbsettings.cpp:65
QgsVectorFieldWindBarbSettings::readXml
void readXml(const QDomElement &elem)
Reads configuration from the given DOM element.
Definition
qgsvectorfieldwindbarbsettings.cpp:22
QgsVectorFieldWindBarbSettings::writeXml
QDomElement writeXml(QDomDocument &doc) const
Writes configuration to a new DOM element.
Definition
qgsvectorfieldwindbarbsettings.cpp:30
QgsVectorFieldWindBarbSettings::setMagnitudeMultiplier
void setMagnitudeMultiplier(double magnitudeMultiplier)
Sets a multiplier for the magnitude to convert it to knots.
Definition
qgsvectorfieldwindbarbsettings.cpp:60
QgsVectorFieldWindBarbSettings::setMagnitudeUnits
void setMagnitudeUnits(Qgis::WindSpeedUnit units)
Sets the units that the data are in.
Definition
qgsvectorfieldwindbarbsettings.cpp:90
QgsVectorFieldWindBarbSettings::magnitudeMultiplier
double magnitudeMultiplier() const
Returns the multiplier for the magnitude to convert it to knots, according to the units set with setM...
Definition
qgsvectorfieldwindbarbsettings.cpp:40
QgsVectorFieldWindBarbSettings::setShaftLength
void setShaftLength(double shaftLength)
Sets the shaft length (in millimeters).
Definition
qgsvectorfieldwindbarbsettings.cpp:70
QgsVectorFieldWindBarbSettings::shaftLengthUnits
Qgis::RenderUnit shaftLengthUnits() const
Returns the units for the shaft length.
Definition
qgsvectorfieldwindbarbsettings.cpp:75
QgsVectorFieldWindBarbSettings::setShaftLengthUnits
void setShaftLengthUnits(Qgis::RenderUnit shaftLengthUnit)
Sets the units for the shaft length.
Definition
qgsvectorfieldwindbarbsettings.cpp:80
qgsvectorfieldwindbarbsettings.h
Generated on
for QGIS API Documentation by
1.17.0