Skip to content

Commit c6a29fa

Browse files
committedSep 13, 2012
raster sip fixes
1 parent 94c2e1c commit c6a29fa

File tree

7 files changed

+43
-10
lines changed

7 files changed

+43
-10
lines changed
 

‎python/core/qgsrasterdataprovider.sip

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* sense for Raster layers.
77
*/
88

9-
class QgsRasterDataProvider : QgsDataProvider
9+
class QgsRasterDataProvider : QgsDataProvider, QgsRasterInterface
1010
{
1111
%TypeHeaderCode
1212
#include <qgsrasterdataprovider.h>

‎python/core/qgsrasterinterface.sip

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,39 @@ class QgsRasterInterface
77
{
88
%TypeHeaderCode
99
#include <qgsrasterinterface.h>
10+
#include <qgsrasterresamplefilter.h>
11+
//#include <qgsrasternuller.h>
12+
#include <qgsrasterrenderer.h>
13+
#include <qgsrasterprojector.h>
14+
#include <qgsrasterdataprovider.h>
15+
16+
// QgsRasterRenderer subclass headers must be here because ConvertToSubClassCode
17+
// from QgsRasterRenderer is probably included
18+
#include <qgspalettedrasterrenderer.h>
19+
#include <qgsmultibandcolorrenderer.h>
20+
#include <qgssinglebandpseudocolorrenderer.h>
21+
#include <qgssinglebandgrayrenderer.h>
22+
#include <qgssinglebandcolordatarenderer.h>
1023
%End
24+
25+
%ConvertToSubClassCode
26+
if (dynamic_cast<QgsRasterResampleFilter*>(sipCpp) != NULL)
27+
sipClass = sipClass_QgsRasterResampleFilter;
28+
// if (dynamic_cast<QgsRasterNuller*>(sipCpp) != NULL)
29+
// sipClass = sipClass_QgsRasterNuller;
30+
if (dynamic_cast<QgsRasterRenderer*>(sipCpp) != NULL)
31+
sipClass = sipClass_QgsRasterRenderer;
32+
if (dynamic_cast<QgsRasterProjector*>(sipCpp) != NULL)
33+
sipClass = sipClass_QgsRasterProjector;
34+
if (dynamic_cast<QgsRasterDataProvider*>(sipCpp) != NULL)
35+
{
36+
sipClass = sipClass_QgsRasterDataProvider;
37+
*sipCppRet = static_cast<QgsRasterDataProvider*>(sipCpp);
38+
}
39+
else
40+
sipClass = 0;
41+
%End
42+
1143
public:
1244

1345
enum DataType

‎python/core/qgsrasterpipe.sip

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ class QgsRasterPipe
2323

2424
~QgsRasterPipe();
2525

26-
bool insert( int idx, QgsRasterInterface* theInterface );
26+
bool insert( int idx, QgsRasterInterface* theInterface /Transfer/ );
2727

28-
bool replace( int idx, QgsRasterInterface* theInterface );
28+
bool replace( int idx, QgsRasterInterface* theInterface /Transfer/ );
2929

30-
bool set( QgsRasterInterface * theInterface );
30+
bool set( QgsRasterInterface * theInterface /Transfer/ );
3131

3232
bool remove( int idx );
3333

‎python/core/qgsrasterprojector.sip

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
/** Raster projector */
33

4-
class QgsRasterProjector
4+
class QgsRasterProjector : QgsRasterInterface
55
{
66
%TypeHeaderCode
77
#include <qgsrasterprojector.h>

‎python/core/qgsrasterrenderer.sip

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
class QgsRasterRenderer
1+
class QgsRasterRenderer : QgsRasterInterface
22
{
33
%TypeHeaderCode
44
#include "qgsrasterrenderer.h"
@@ -7,6 +7,7 @@ class QgsRasterRenderer
77
#include "qgssinglebandpseudocolorrenderer.h"
88
#include "qgssinglebandgrayrenderer.h"
99
#include "qgssinglebandcolordatarenderer.h"
10+
#include "qgsrasterinterface.h"
1011
%End
1112

1213
%ConvertToSubClassCode
@@ -18,8 +19,8 @@ class QgsRasterRenderer
1819
sipClass = sipClass_QgsSingleBandPseudoColorRenderer;
1920
else if (dynamic_cast<QgsSingleBandGrayRenderer*>(sipCpp) != NULL)
2021
sipClass = sipClass_QgsSingleBandGrayRenderer;
21-
else if (dynamic_cast<QgsSingleBandGrayRenderer*>(sipCpp) != NULL)
22-
sipClass = sipClass_QgsSingleBandGrayRenderer;
22+
else if (dynamic_cast<QgsSingleBandGrayRenderer*>(sipCpp) != NULL)
23+
sipClass = sipClass_QgsSingleBandGrayRenderer;
2324
else
2425
sipClass = 0;
2526
%End

‎python/core/qgsrasterresamplefilter.sip

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
/** Raster resample filter */
33

4-
class QgsRasterResampleFilter
4+
class QgsRasterResampleFilter : QgsRasterInterface
55
{
66
%TypeHeaderCode
77
#include <qgsrasterresamplefilter.h>

‎tests/src/python/test_qgsrasterfilewriter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def write(self, theRasterName):
4646

4747
projector = QgsRasterProjector()
4848
projector.setCRS( provider.crs(), provider.crs() )
49-
if not pipe.insert( 2, projector.clone() ):
49+
if not pipe.insert( 2, projector ):
5050
print "Cannot set pipe projector"
5151
return False
5252

0 commit comments

Comments
 (0)
Please sign in to comment.