Skip to content

Commit d2b01bc

Browse files
committedJul 1, 2012
Role removed from QgsRasterInterface, the logic moved to QgsRasterPipe
1 parent 71f3cfe commit d2b01bc

10 files changed

+131
-135
lines changed
 

‎src/core/qgsrasterdataprovider.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,14 @@ void * QgsRasterDataProvider::readBlock( int bandNo, QgsRectangle const & exten
105105
}
106106

107107
QgsRasterDataProvider::QgsRasterDataProvider()
108-
: QgsRasterInterface( 0, QgsRasterInterface::ProviderRole )
108+
: QgsRasterInterface( 0 )
109109
, mDpi( -1 )
110110
{
111111
}
112112

113113
QgsRasterDataProvider::QgsRasterDataProvider( QString const & uri )
114114
: QgsDataProvider( uri )
115-
, QgsRasterInterface( 0, QgsRasterInterface::ProviderRole )
115+
, QgsRasterInterface( 0 )
116116
, mDpi( -1 )
117117
{
118118
}

‎src/core/qgsrasterprojector.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ QgsRasterProjector::QgsRasterProjector(
2626
int theDestRows, int theDestCols,
2727
double theMaxSrcXRes, double theMaxSrcYRes,
2828
QgsRectangle theExtent )
29-
: QgsRasterInterface( 0, QgsRasterInterface::ProjectorRole )
29+
: QgsRasterInterface( 0 )
3030
, mSrcCRS( theSrcCRS )
3131
, mDestCRS( theDestCRS )
3232
, mCoordinateTransform( theDestCRS, theSrcCRS )
@@ -47,7 +47,7 @@ QgsRasterProjector::QgsRasterProjector(
4747
QgsCoordinateReferenceSystem theDestCRS,
4848
double theMaxSrcXRes, double theMaxSrcYRes,
4949
QgsRectangle theExtent )
50-
: QgsRasterInterface( 0, QgsRasterInterface::ProjectorRole )
50+
: QgsRasterInterface( 0 )
5151
, mSrcCRS( theSrcCRS )
5252
, mDestCRS( theDestCRS )
5353
, mCoordinateTransform( theDestCRS, theSrcCRS )
@@ -59,7 +59,7 @@ QgsRasterProjector::QgsRasterProjector(
5959
}
6060

6161
QgsRasterProjector::QgsRasterProjector()
62-
: QgsRasterInterface( 0, QgsRasterInterface::ProjectorRole )
62+
: QgsRasterInterface( 0)
6363
, pHelperTop( 0 ), pHelperBottom( 0 )
6464
{
6565
QgsDebugMsg( "Entered" );

‎src/core/raster/qgsrasterinterface.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@
2121
#include "qgslogger.h"
2222
#include "qgsrasterinterface.h"
2323

24-
QgsRasterInterface::QgsRasterInterface( QgsRasterInterface * input, Role role )
24+
QgsRasterInterface::QgsRasterInterface( QgsRasterInterface * input )
2525
: mInput( input )
26-
, mRole( role )
2726
, mTimeMinSize( 150 )
2827
{
2928
}
@@ -60,7 +59,7 @@ void * QgsRasterInterface::block( int bandNo, QgsRectangle const & extent, int
6059
}
6160
// QTime counts only in miliseconds
6261
mTime[bandNo] = time.elapsed();
63-
QgsDebugMsg( QString( "mRole = %1 bandNo = %2 time = %3" ).arg( mRole ).arg( bandNo ).arg( mTime[bandNo] ) );
62+
QgsDebugMsg( QString( "bandNo = %2 time = %3" ).arg( bandNo ).arg( mTime[bandNo] ) );
6463
}
6564
return b;
6665
}
@@ -79,7 +78,7 @@ double QgsRasterInterface::time( int bandNo )
7978
{
8079
t = mTime.value( bandNo );
8180
}
82-
QgsDebugMsg( QString( "mRole = %1 bandNo = %2 time = %3" ).arg( mRole ).arg( bandNo ).arg( t ) );
81+
QgsDebugMsg( QString( "bandNo = %2 time = %3" ).arg( bandNo ).arg( t ) );
8382
return t;
8483
}
8584

‎src/core/raster/qgsrasterinterface.h

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,6 @@ class CORE_EXPORT QgsRasterInterface
3030
{
3131
public:
3232

33-
/** Role is used to identify certain type of interface in pipe and replace
34-
* it with another of the same Role for example
35-
*/
36-
enum Role
37-
{
38-
UnknownRole = 0,
39-
ProviderRole = 1,
40-
RendererRole = 2,
41-
ResamplerRole = 3,
42-
ProjectorRole = 4
43-
};
44-
4533
/** Data types.
4634
* This is modified and extended copy of GDALDataType.
4735
*/
@@ -67,13 +55,10 @@ class CORE_EXPORT QgsRasterInterface
6755
TypeCount = 14 /* maximum type # + 1 */
6856
};
6957

70-
QgsRasterInterface( QgsRasterInterface * input = 0, Role role = UnknownRole );
58+
QgsRasterInterface( QgsRasterInterface * input = 0 );
7159

7260
virtual ~QgsRasterInterface();
7361

74-
/** Interface role */
75-
Role role() { return mRole; }
76-
7762
int typeSize( int dataType ) const
7863
{
7964
// Modified and extended copy from GDAL
@@ -174,9 +159,6 @@ class CORE_EXPORT QgsRasterInterface
174159
double avgTime();
175160

176161
protected:
177-
// Role of interface
178-
Role mRole;
179-
180162
// QgsRasterInterface used as input
181163
QgsRasterInterface* mInput;
182164

‎src/core/raster/qgsrasterlayer.cpp

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -853,12 +853,12 @@ void QgsRasterLayer::draw( QPainter * theQPainter,
853853
}
854854
*/
855855

856-
QgsRasterProjector *projector = dynamic_cast<QgsRasterProjector *>( mPipe.filter( QgsRasterInterface::ProjectorRole ) );
856+
QgsRasterProjector *projector = mPipe.projector();
857857
// TODO: add in init?
858858
if ( !projector )
859859
{
860860
projector = new QgsRasterProjector;
861-
mPipe.insertOrReplace( projector );
861+
mPipe.setFilter( projector );
862862
}
863863

864864
// TODO add a method to interface to get provider and get provider
@@ -1022,7 +1022,7 @@ QList< QPair< QString, QColor > > QgsRasterLayer::legendSymbologyItems() const
10221022
//{
10231023
// mRenderer->legendSymbologyItems( symbolList );
10241024
//}
1025-
QgsRasterRenderer *renderer = dynamic_cast<QgsRasterRenderer *>( mPipe.filter( QgsRasterInterface::RendererRole ) );
1025+
QgsRasterRenderer *renderer = mPipe.renderer();
10261026
if ( renderer )
10271027
{
10281028
renderer->legendSymbologyItems( symbolList );
@@ -1671,7 +1671,7 @@ void QgsRasterLayer::setDataProvider( QString const & provider )
16711671
{
16721672
return;
16731673
}
1674-
mPipe.insertOrReplace( mDataProvider );
1674+
mPipe.setFilter( mDataProvider );
16751675

16761676
if ( provider == "gdal" )
16771677
{
@@ -2116,30 +2116,14 @@ void QgsRasterLayer::setTransparentBandName( QString const & )
21162116
void QgsRasterLayer::setRenderer( QgsRasterRenderer* theRenderer )
21172117
{
21182118
QgsDebugMsg( "Entered" );
2119-
//delete mRenderer;
2120-
//mRenderer = renderer;
2121-
mPipe.insertOrReplace( theRenderer );
2122-
2123-
/*
2124-
if ( !mResampleFilter )
2125-
{
2126-
mResampleFilter = new QgsRasterResampleFilter( mRenderer );
2127-
}
2128-
else
2129-
{
2130-
mResampleFilter->setInput( mRenderer );
2131-
}
2132-
*/
2119+
mPipe.setFilter( theRenderer );
21332120
}
21342121

21352122
// not sure if we want it
21362123
void QgsRasterLayer::setResampleFilter( QgsRasterResampleFilter* resampleFilter )
21372124
{
21382125
QgsDebugMsg( "Entered" );
2139-
//delete mResampleFilter;
2140-
//mResampleFilter = resampleFilter;
2141-
//mResampleFilter->setInput( mRenderer );
2142-
mPipe.insertOrReplace( resampleFilter );
2126+
mPipe.setFilter( resampleFilter );
21432127
}
21442128

21452129
void QgsRasterLayer::showProgress( int theValue )
@@ -2307,7 +2291,7 @@ bool QgsRasterLayer::readSymbology( const QDomNode& layer_node, QString& errorMe
23072291
{
23082292
//mRenderer = rendererEntry.rendererCreateFunction( rasterRendererElem, dataProvider() );
23092293
QgsRasterRenderer *renderer = rendererEntry.rendererCreateFunction( rasterRendererElem, dataProvider() );
2310-
mPipe.insertOrReplace( renderer );
2294+
mPipe.setFilter( renderer );
23112295
}
23122296
}
23132297
}
@@ -2317,7 +2301,7 @@ bool QgsRasterLayer::readSymbology( const QDomNode& layer_node, QString& errorMe
23172301
//mResampleFilter = new QgsRasterResampleFilter( mRenderer );
23182302

23192303
QgsRasterResampleFilter * resampleFilter = new QgsRasterResampleFilter();
2320-
mPipe.insertOrReplace( resampleFilter );
2304+
mPipe.setFilter( resampleFilter );
23212305

23222306
//max oversampling
23232307
QDomElement resampleElem = layer_node.firstChildElement( "rasterresampler" );
@@ -2506,13 +2490,13 @@ bool QgsRasterLayer::writeSymbology( QDomNode & layer_node, QDomDocument & docum
25062490
//{
25072491
//mRenderer->writeXML( document, layerElem );
25082492
//}
2509-
QgsRasterRenderer *renderer = dynamic_cast<QgsRasterRenderer *>( mPipe.filter( QgsRasterInterface::RendererRole ) );
2493+
QgsRasterRenderer *renderer = mPipe.renderer();
25102494
if ( renderer )
25112495
{
25122496
renderer->writeXML( document, layerElem );
25132497
}
25142498

2515-
QgsRasterResampleFilter *resampleFilter = dynamic_cast<QgsRasterResampleFilter *>( mPipe.filter( QgsRasterInterface::ResamplerRole ) );
2499+
QgsRasterResampleFilter *resampleFilter = mPipe.resampleFilter();
25162500
if ( resampleFilter )
25172501
{
25182502
QDomElement layerElem = layer_node.toElement();

‎src/core/raster/qgsrasterlayer.h

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -352,17 +352,13 @@ class CORE_EXPORT QgsRasterLayer : public QgsMapLayer
352352

353353
/**Set raster renderer. Takes ownership of the renderer object*/
354354
void setRenderer( QgsRasterRenderer* theRenderer );
355-
//const QgsRasterRenderer* renderer() const { return mRenderer; }
356-
//QgsRasterRenderer* renderer() { return mRenderer; }
357-
const QgsRasterRenderer* renderer() const { return dynamic_cast<QgsRasterRenderer*>( mPipe.filter( QgsRasterInterface::RendererRole ) ); }
358-
QgsRasterRenderer* renderer() { return dynamic_cast<QgsRasterRenderer*>( mPipe.filter( QgsRasterInterface::RendererRole ) ); }
355+
//const QgsRasterRenderer* renderer() const { return mPipe.renderer(); }
356+
QgsRasterRenderer* renderer() const { return mPipe.renderer(); }
359357

360358
/**Set raster resample filter. Takes ownership of the resample filter object*/
361359
void setResampleFilter( QgsRasterResampleFilter* resampleFilter );
362-
//const QgsRasterResampleFilter* resampleFilter() const { return mResampleFilter; }
363-
//QgsRasterResampleFilter * resampleFilter() { return mResampleFilter; }
364-
const QgsRasterResampleFilter* resampleFilter() const { return dynamic_cast<QgsRasterResampleFilter*>( mPipe.filter( QgsRasterInterface::ResamplerRole ) ); }
365-
QgsRasterResampleFilter * resampleFilter() { return dynamic_cast<QgsRasterResampleFilter*>( mPipe.filter( QgsRasterInterface::ResamplerRole ) ); }
360+
//const QgsRasterResampleFilter* resampleFilter() const { return mPipe.resampleFilter(); }
361+
QgsRasterResampleFilter * resampleFilter() const { return mPipe.resampleFilter(); }
366362

367363
/** Get raster pipe */
368364
QgsRasterPipe * pipe() { return &mPipe; }

0 commit comments

Comments
 (0)
Please sign in to comment.