QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
3d
qgs3daxissettings.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgs3daxissettings.cpp
3
--------------------------------------
4
Date : April 2022
5
copyright : (C) 2021 B. De Mezzo
6
email : benoit dot de dot mezzo at oslandia 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 "
qgs3daxissettings.h
"
17
18
#include "
qgsreadwritecontext.h
"
19
20
#include <QDomDocument>
21
#include <QString>
22
23
using namespace
Qt::StringLiterals;
24
25
bool
Qgs3DAxisSettings::operator==
(
Qgs3DAxisSettings
const
&rhs )
const
26
{
27
bool
out =
true
;
28
out &= this->mMode == rhs.mMode;
29
out &= this->mHorizontalPosition == rhs.mHorizontalPosition;
30
out &= this->mVerticalPosition == rhs.mVerticalPosition;
31
out &= this->mDefaultViewportSize == rhs.mDefaultViewportSize;
32
out &= this->mMaxViewportRatio == rhs.mMaxViewportRatio;
33
out &= this->mMinViewportRatio == rhs.mMinViewportRatio;
34
return
out;
35
}
36
37
bool
Qgs3DAxisSettings::operator!=
(
Qgs3DAxisSettings
const
&rhs )
const
38
{
39
return
!this->
operator==
( rhs );
40
}
41
42
void
Qgs3DAxisSettings::readXml
(
const
QDomElement &element,
const
QgsReadWriteContext
& )
43
{
44
QString sizeStr = element.attribute( u
"defaultViewportSize"
_s );
45
if
( !sizeStr.isEmpty() )
46
mDefaultViewportSize = sizeStr.toInt();
47
48
double
minViewportRatio
= 0.0;
49
double
maxViewportRatio
= 0.0;
50
sizeStr = element.attribute( u
"minViewportRatio"
_s );
51
if
( !sizeStr.isEmpty() && sizeStr.toDouble() != 0.0 )
52
minViewportRatio
= sizeStr.toDouble();
53
54
sizeStr = element.attribute( u
"maxViewportRatio"
_s );
55
if
( !sizeStr.isEmpty() && sizeStr.toDouble() != 0.0 )
56
maxViewportRatio
= sizeStr.toDouble();
57
58
if
(
maxViewportRatio
> 0.0 )
59
mMaxViewportRatio =
maxViewportRatio
;
60
61
if
(
minViewportRatio
> 0.0 && mMaxViewportRatio >
minViewportRatio
)
62
mMinViewportRatio =
minViewportRatio
;
63
64
const
QString modeStr = element.attribute( u
"mode"
_s );
65
if
( modeStr ==
"Off"
_L1 )
66
mMode =
Qgs3DAxisSettings::Mode::Off
;
67
else
if
( modeStr ==
"Crs"
_L1 )
68
mMode =
Qgs3DAxisSettings::Mode::Crs
;
69
else
if
( modeStr ==
"Cube"
_L1 )
70
mMode =
Qgs3DAxisSettings::Mode::Cube
;
71
72
const
QString horizontalStr = element.attribute( u
"horizontal"
_s );
73
if
( horizontalStr ==
"Left"
_L1 )
74
mHorizontalPosition = Qt::AnchorPoint::AnchorLeft;
75
else
if
( horizontalStr ==
"Middle"
_L1 )
76
mHorizontalPosition = Qt::AnchorPoint::AnchorHorizontalCenter;
77
else
if
( horizontalStr ==
"Right"
_L1 )
78
mHorizontalPosition = Qt::AnchorPoint::AnchorRight;
79
80
const
QString verticalStr = element.attribute( u
"vertical"
_s );
81
if
( verticalStr ==
"Top"
_L1 )
82
mVerticalPosition = Qt::AnchorPoint::AnchorTop;
83
else
if
( verticalStr ==
"Middle"
_L1 )
84
mVerticalPosition = Qt::AnchorPoint::AnchorVerticalCenter;
85
else
if
( verticalStr ==
"Bottom"
_L1 )
86
mVerticalPosition = Qt::AnchorPoint::AnchorBottom;
87
}
88
89
void
Qgs3DAxisSettings::writeXml
( QDomElement &element,
const
QgsReadWriteContext
& )
const
90
{
91
QString str;
92
93
str = QString::number( mDefaultViewportSize );
94
element.setAttribute( u
"defaultViewportSize"
_s, str );
95
96
str = QString::number( mMinViewportRatio );
97
element.setAttribute( u
"minViewportRatio"
_s, str );
98
99
str = QString::number( mMaxViewportRatio );
100
element.setAttribute( u
"maxViewportRatio"
_s, str );
101
102
switch
( mMode )
103
{
104
case
Qgs3DAxisSettings::Mode::Crs
:
105
str =
"Crs"
_L1;
106
break
;
107
case
Qgs3DAxisSettings::Mode::Cube
:
108
str =
"Cube"
_L1;
109
break
;
110
111
case
Qgs3DAxisSettings::Mode::Off
:
112
default
:
113
str =
"Off"
_L1;
114
break
;
115
}
116
element.setAttribute( u
"mode"
_s, str );
117
118
switch
( mHorizontalPosition )
119
{
120
case
Qt::AnchorPoint::AnchorLeft:
121
str =
"Left"
_L1;
122
break
;
123
case
Qt::AnchorPoint::AnchorHorizontalCenter:
124
str =
"Middle"
_L1;
125
break
;
126
case
Qt::AnchorPoint::AnchorRight:
127
default
:
128
str =
"End"
_L1;
129
break
;
130
}
131
element.setAttribute( u
"horizontal"
_s, str );
132
133
switch
( mVerticalPosition )
134
{
135
case
Qt::AnchorPoint::AnchorBottom:
136
str =
"Bottom"
_L1;
137
break
;
138
case
Qt::AnchorPoint::AnchorVerticalCenter:
139
str =
"Middle"
_L1;
140
break
;
141
case
Qt::AnchorPoint::AnchorTop:
142
default
:
143
str =
"Top"
_L1;
144
break
;
145
}
146
element.setAttribute( u
"vertical"
_s, str );
147
}
148
149
void
Qgs3DAxisSettings::setMinViewportRatio
(
double
ratio )
150
{
151
if
( ratio < mMaxViewportRatio )
152
{
153
mMinViewportRatio = std::clamp( ratio, 0.0, 1.0 );
154
}
155
}
156
157
void
Qgs3DAxisSettings::setMaxViewportRatio
(
double
ratio )
158
{
159
if
( ratio > mMinViewportRatio )
160
{
161
mMaxViewportRatio = std::clamp( ratio, 0.0, 1.0 );
162
}
163
}
Qgs3DAxisSettings::minViewportRatio
double minViewportRatio() const
Returns the minimal axis viewport ratio (see Qt3DRender::QViewport::normalizedRect()).
Definition
qgs3daxissettings.h:65
Qgs3DAxisSettings::Qgs3DAxisSettings
Qgs3DAxisSettings()=default
Qgs3DAxisSettings::maxViewportRatio
double maxViewportRatio() const
Returns the maximal axis viewport ratio (see Qt3DRender::QViewport::normalizedRect()).
Definition
qgs3daxissettings.h:70
Qgs3DAxisSettings::readXml
void readXml(const QDomElement &element, const QgsReadWriteContext &context)
Reads settings from a DOM element.
Definition
qgs3daxissettings.cpp:42
Qgs3DAxisSettings::Mode::Crs
@ Crs
Respect CRS directions.
Definition
qgs3daxissettings.h:45
Qgs3DAxisSettings::Mode::Cube
@ Cube
Abstract cube mode.
Definition
qgs3daxissettings.h:46
Qgs3DAxisSettings::Mode::Off
@ Off
Hide 3d axis.
Definition
qgs3daxissettings.h:44
Qgs3DAxisSettings::operator!=
bool operator!=(Qgs3DAxisSettings const &rhs) const
Definition
qgs3daxissettings.cpp:37
Qgs3DAxisSettings::setMinViewportRatio
void setMinViewportRatio(double ratio)
Sets the minimal axis viewport ratio between 0-1.
Definition
qgs3daxissettings.cpp:149
Qgs3DAxisSettings::operator==
bool operator==(Qgs3DAxisSettings const &rhs) const
Definition
qgs3daxissettings.cpp:25
Qgs3DAxisSettings::setMaxViewportRatio
void setMaxViewportRatio(double ratio)
Sets the maximal axis viewport ratio between 0-1.
Definition
qgs3daxissettings.cpp:157
Qgs3DAxisSettings::writeXml
void writeXml(QDomElement &element, const QgsReadWriteContext &context) const
Writes settings to a DOM element.
Definition
qgs3daxissettings.cpp:89
QgsReadWriteContext
A container for the context for various read/write operations on objects.
Definition
qgsreadwritecontext.h:38
qgs3daxissettings.h
qgsreadwritecontext.h
Generated on
for QGIS API Documentation by
1.17.0