QGIS API Documentation
2.2.0-Valmiera
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
src
core
raster
qgsrasterpipe.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsrasterpipe.h - Internal raster processing modules interface
3
--------------------------------------
4
Date : Jun 21, 2012
5
Copyright : (C) 2012 by Radim Blazek
6
email : radim dot blazek at gmail dot com
7
***************************************************************************/
8
9
/***************************************************************************
10
* *
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
15
* *
16
***************************************************************************/
17
18
#ifndef QGSRASTERPIPE_H
19
#define QGSRASTERPIPE_H
20
21
#include <QImage>
22
#include <QObject>
23
24
#include "
qgsbrightnesscontrastfilter.h
"
25
#include "
qgshuesaturationfilter.h
"
26
#include "
qgsrasterdataprovider.h
"
27
#include "
qgsrasterinterface.h
"
28
#include "
qgsrasternuller.h
"
29
#include "
qgsrasterprojector.h
"
30
#include "
qgsrasterrenderer.h
"
31
#include "
qgsrasterresamplefilter.h
"
32
#include "
qgsrectangle.h
"
33
34
#if defined(Q_OS_WIN)
35
#undef interface
36
#endif
37
41
class
CORE_EXPORT
QgsRasterPipe
42
{
43
public
:
44
// Role of known interfaces
45
enum
Role
46
{
47
UnknownRole = 0,
48
ProviderRole = 1,
49
RendererRole = 2,
50
BrightnessRole = 3,
51
ResamplerRole = 4,
52
ProjectorRole = 5,
53
NullerRole = 6,
54
HueSaturationRole = 7
55
};
56
57
QgsRasterPipe
();
58
QgsRasterPipe
(
const
QgsRasterPipe
& thePipe );
59
60
~
QgsRasterPipe
();
61
64
bool
insert(
int
idx,
QgsRasterInterface
* theInterface );
65
68
bool
replace(
int
idx,
QgsRasterInterface
* theInterface );
69
76
bool
set
(
QgsRasterInterface
* theInterface );
77
79
bool
remove
(
int
idx );
80
82
bool
remove
(
QgsRasterInterface
* theInterface );
83
84
int
size
()
const
{
return
mInterfaces.size(); }
85
QgsRasterInterface
*
at
(
int
idx )
const
{
return
mInterfaces.at( idx ); }
86
QgsRasterInterface
*
last
()
const
{
return
mInterfaces.last(); }
87
90
bool
setOn(
int
idx,
bool
on );
91
93
bool
canSetOn(
int
idx,
bool
on );
94
95
// Getters for special types of interfaces
96
QgsRasterDataProvider
* provider()
const
;
97
QgsRasterRenderer
* renderer()
const
;
98
QgsRasterResampleFilter
* resampleFilter()
const
;
99
QgsBrightnessContrastFilter
* brightnessFilter()
const
;
100
QgsHueSaturationFilter
* hueSaturationFilter()
const
;
101
QgsRasterProjector
* projector()
const
;
102
QgsRasterNuller
* nuller()
const
;
103
104
private
:
106
Role interfaceRole(
QgsRasterInterface
* iface )
const
;
107
108
// Interfaces in pipe, the first is always provider
109
QVector<QgsRasterInterface*>
mInterfaces
;
110
111
QMap<Role, int>
mRoleMap
;
112
113
// Set role in mRoleMap
114
void
setRole(
QgsRasterInterface
* theInterface,
int
idx );
115
116
// Unset role in mRoleMap
117
void
unsetRole(
QgsRasterInterface
* theInterface );
118
119
// Check if index is in bounds
120
bool
checkBounds(
int
idx )
const
;
121
123
QgsRasterInterface
* interface(
Role
role )
const
;
124
127
bool
connect( QVector<QgsRasterInterface*> theInterfaces );
128
};
129
130
#endif
131
132
Generated on Sun Feb 23 2014 14:27:19 for QGIS API Documentation by
1.8.1.2