QGIS API Documentation
3.14.0-Pi (9f7028fd23)
src
analysis
raster
qgsrastercalcnode.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsrastercalcnode.h
3
Node for raster calculator tree
4
--------------------
5
begin : 2010-10-23
6
copyright : (C) 20010 by Marco Hugentobler
7
email : marco dot hugentobler at sourcepole dot ch
8
***************************************************************************/
9
10
/***************************************************************************
11
* *
12
* This program is free software; you can redistribute it and/or modify *
13
* it under the terms of the GNU General Public License as published by *
14
* the Free Software Foundation; either version 2 of the License, or *
15
* (at your option) any later version. *
16
* *
17
***************************************************************************/
18
19
#ifndef QGSRASTERCALCNODE_H
20
#define QGSRASTERCALCNODE_H
21
22
#include <QMap>
23
#include "
qgis_sip.h
"
24
#include "
qgis.h
"
25
#include <QString>
26
#include "qgis_analysis.h"
27
28
class
QgsRasterBlock
;
29
class
QgsRasterMatrix
;
30
35
class
ANALYSIS_EXPORT
QgsRasterCalcNode
36
{
37
public
:
39
enum
Type
40
{
41
tOperator = 1,
42
tNumber
,
43
tRasterRef
,
44
tMatrix
45
};
46
48
enum
Operator
49
{
50
opPLUS
,
51
opMINUS
,
52
opMUL
,
53
opDIV
,
54
opPOW
,
55
opSQRT
,
56
opSIN
,
57
opCOS
,
58
opTAN
,
59
opASIN
,
60
opACOS
,
61
opATAN
,
62
opEQ
,
// =
63
opNE
,
64
opGT
,
// >
65
opLT
,
// <
66
opGE
,
// >=
67
opLE
,
// <=
68
opAND
,
69
opOR
,
70
opSIGN
,
// change sign
71
opLOG
,
72
opLOG10
,
73
opABS
,
74
opMAX
,
75
opMIN
,
76
opNONE
,
77
};
78
82
QgsRasterCalcNode
() =
default
;
83
84
QgsRasterCalcNode
(
double
number );
85
QgsRasterCalcNode
(
QgsRasterMatrix
*matrix );
86
QgsRasterCalcNode
( Operator op,
QgsRasterCalcNode
*left,
QgsRasterCalcNode
*right );
87
QgsRasterCalcNode
(
const
QString &rasterName );
88
~
QgsRasterCalcNode
();
89
91
QgsRasterCalcNode
(
const
QgsRasterCalcNode
&rh ) =
delete
;
93
QgsRasterCalcNode
&operator=(
const
QgsRasterCalcNode
&rh ) =
delete
;
94
95
Type
type
()
const
{
return
mType; }
96
97
//set left node
98
void
setLeft
(
QgsRasterCalcNode
*left ) {
delete
mLeft; mLeft = left; }
99
void
setRight
(
QgsRasterCalcNode
*right ) {
delete
mRight; mRight = right; }
100
110
bool
calculate( QMap<QString, QgsRasterBlock * > &rasterData,
QgsRasterMatrix
&result,
int
row = -1 ) const
SIP_SKIP
;
111
117
QString toString(
bool
cStyle = false ) const;
118
123
QList<const
QgsRasterCalcNode
*> findNodes( const
QgsRasterCalcNode
::Type type ) const;
124
125
static
QgsRasterCalcNode
*parseRasterCalcString( const QString &str, QString &parserErrorMsg )
SIP_FACTORY
;
126
127
private:
128
#ifdef SIP_RUN
129
QgsRasterCalcNode
(
const
QgsRasterCalcNode
&rh );
130
#endif
131
132
Type mType = tNumber;
133
QgsRasterCalcNode
*mLeft =
nullptr
;
134
QgsRasterCalcNode
*mRight =
nullptr
;
135
double
mNumber = 0;
136
QString mRasterName;
137
QgsRasterMatrix
*mMatrix =
nullptr
;
138
Operator mOperator = opNONE;
139
140
};
141
142
143
#endif // QGSRASTERCALCNODE_H
QgsRasterCalcNode::opACOS
@ opACOS
Definition:
qgsrastercalcnode.h:60
QgsRasterCalcNode::opASIN
@ opASIN
Definition:
qgsrastercalcnode.h:59
QgsRasterCalcNode::tNumber
@ tNumber
Definition:
qgsrastercalcnode.h:42
QgsRasterCalcNode
Definition:
qgsrastercalcnode.h:35
QgsRasterCalcNode::opSIGN
@ opSIGN
Definition:
qgsrastercalcnode.h:70
qgis.h
QgsRasterCalcNode::tRasterRef
@ tRasterRef
Definition:
qgsrastercalcnode.h:43
QgsRasterCalcNode::opMUL
@ opMUL
Definition:
qgsrastercalcnode.h:52
QgsRasterCalcNode::Operator
Operator
possible operators
Definition:
qgsrastercalcnode.h:48
SIP_FACTORY
#define SIP_FACTORY
Definition:
qgis_sip.h:76
QgsRasterCalcNode::opPLUS
@ opPLUS
Definition:
qgsrastercalcnode.h:50
QgsRasterCalcNode::opSIN
@ opSIN
Definition:
qgsrastercalcnode.h:56
SIP_SKIP
#define SIP_SKIP
Definition:
qgis_sip.h:126
QgsRasterCalcNode::opNE
@ opNE
Definition:
qgsrastercalcnode.h:63
QgsRasterCalcNode::opGE
@ opGE
Definition:
qgsrastercalcnode.h:66
QgsRasterCalcNode::type
Type type() const
Definition:
qgsrastercalcnode.h:95
QgsRasterCalcNode::opTAN
@ opTAN
Definition:
qgsrastercalcnode.h:58
QgsRasterCalcNode::opGT
@ opGT
=
Definition:
qgsrastercalcnode.h:64
qgis_sip.h
QgsRasterCalcNode::opLOG10
@ opLOG10
Definition:
qgsrastercalcnode.h:72
QgsRasterCalcNode::opNONE
@ opNONE
Definition:
qgsrastercalcnode.h:76
QgsRasterCalcNode::Type
Type
defines possible types of node
Definition:
qgsrastercalcnode.h:39
QgsRasterMatrix
Definition:
qgsrastermatrix.h:28
QgsRasterCalcNode::opLE
@ opLE
Definition:
qgsrastercalcnode.h:67
QgsRasterCalcNode::setRight
void setRight(QgsRasterCalcNode *right)
Definition:
qgsrastercalcnode.h:99
QgsRasterCalcNode::opEQ
@ opEQ
Definition:
qgsrastercalcnode.h:62
QgsRasterCalcNode::opATAN
@ opATAN
Definition:
qgsrastercalcnode.h:61
QgsRasterCalcNode::opDIV
@ opDIV
Definition:
qgsrastercalcnode.h:53
QgsRasterCalcNode::opSQRT
@ opSQRT
Definition:
qgsrastercalcnode.h:55
QgsRasterCalcNode::opLOG
@ opLOG
Definition:
qgsrastercalcnode.h:71
QgsRasterCalcNode::opMIN
@ opMIN
Definition:
qgsrastercalcnode.h:75
QgsRasterCalcNode::opCOS
@ opCOS
Definition:
qgsrastercalcnode.h:57
QgsRasterCalcNode::opOR
@ opOR
Definition:
qgsrastercalcnode.h:69
QgsRasterCalcNode::opMAX
@ opMAX
Definition:
qgsrastercalcnode.h:74
QgsRasterCalcNode::opLT
@ opLT
Definition:
qgsrastercalcnode.h:65
QgsRasterCalcNode::setLeft
void setLeft(QgsRasterCalcNode *left)
Definition:
qgsrastercalcnode.h:98
QgsRasterCalcNode::opMINUS
@ opMINUS
Definition:
qgsrastercalcnode.h:51
QgsRasterCalcNode::opABS
@ opABS
Definition:
qgsrastercalcnode.h:73
QgsRasterCalcNode::opPOW
@ opPOW
Definition:
qgsrastercalcnode.h:54
QgsRasterBlock
Definition:
qgsrasterblock.h:36
QgsRasterCalcNode::opAND
@ opAND
Definition:
qgsrastercalcnode.h:68
Generated on Mon Jun 22 2020 05:14:09 for QGIS API Documentation by
1.8.17