/usr/include/qgis/qgsrasterpipe.h is in libqgis-dev 2.8.6+dfsg-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | /***************************************************************************
qgsrasterpipe.h - Internal raster processing modules interface
--------------------------------------
Date : Jun 21, 2012
Copyright : (C) 2012 by Radim Blazek
email : radim dot blazek at gmail dot com
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef QGSRASTERPIPE_H
#define QGSRASTERPIPE_H
#include <QImage>
#include <QObject>
#include "qgsbrightnesscontrastfilter.h"
#include "qgshuesaturationfilter.h"
#include "qgsrasterdataprovider.h"
#include "qgsrasterinterface.h"
#include "qgsrasternuller.h"
#include "qgsrasterprojector.h"
#include "qgsrasterrenderer.h"
#include "qgsrasterresamplefilter.h"
#include "qgsrectangle.h"
#if defined(Q_OS_WIN)
#undef interface
#endif
/** \ingroup core
* Base class for processing modules.
*/
class CORE_EXPORT QgsRasterPipe
{
public:
// Role of known interfaces
enum Role
{
UnknownRole = 0,
ProviderRole = 1,
RendererRole = 2,
BrightnessRole = 3,
ResamplerRole = 4,
ProjectorRole = 5,
NullerRole = 6,
HueSaturationRole = 7
};
QgsRasterPipe();
QgsRasterPipe( const QgsRasterPipe& thePipe );
~QgsRasterPipe();
/** Try to insert interface at specified index and connect
* if connection would fail, the interface is not inserted and false is returned */
bool insert( int idx, QgsRasterInterface* theInterface );
/** Try to replace interface at specified index and connect
* if connection would fail, the interface is not inserted and false is returned */
bool replace( int idx, QgsRasterInterface* theInterface );
/** Insert a new known interface in default place or replace interface of the same
* role if it already exists. Known interfaces are: QgsRasterDataProvider,
* QgsRasterRenderer, QgsRasterResampleFilter, QgsRasterProjector and their
* subclasses. For unknown interfaces it mus be explicitly specified position
* where it should be inserted using insert() method.
*/
bool set( QgsRasterInterface * theInterface );
/** Remove and delete interface at given index if possible */
bool remove( int idx );
/** Remove and delete interface from pipe if possible */
bool remove( QgsRasterInterface * theInterface );
int size() const { return mInterfaces.size(); }
QgsRasterInterface * at( int idx ) const { return mInterfaces.at( idx ); }
QgsRasterInterface * last() const { return mInterfaces.last(); }
/** Set interface at index on/off
* Returns true on success */
bool setOn( int idx, bool on );
/** Test if interface at index may be swithed on/off */
bool canSetOn( int idx, bool on );
// Getters for special types of interfaces
QgsRasterDataProvider * provider() const;
QgsRasterRenderer * renderer() const;
QgsRasterResampleFilter * resampleFilter() const;
QgsBrightnessContrastFilter * brightnessFilter() const;
QgsHueSaturationFilter * hueSaturationFilter() const;
QgsRasterProjector * projector() const;
QgsRasterNuller * nuller() const;
private:
/** Get known parent type_info of interface parent */
Role interfaceRole( QgsRasterInterface * iface ) const;
// Interfaces in pipe, the first is always provider
QVector<QgsRasterInterface*> mInterfaces;
QMap<Role, int> mRoleMap;
// Set role in mRoleMap
void setRole( QgsRasterInterface * theInterface, int idx );
// Unset role in mRoleMap
void unsetRole( QgsRasterInterface * theInterface );
// Check if index is in bounds
bool checkBounds( int idx ) const;
/** Get known interface by role */
QgsRasterInterface * interface( Role role ) const;
/** \brief Try to connect interfaces in pipe and to the provider at beginning.
Returns true if connected or false if connection failed */
bool connect( QVector<QgsRasterInterface*> theInterfaces );
};
#endif
|