Skip to content

Commit 6db04b4

Browse files
committed
Fixed SIP wrapper for conversion to QgsRasterInterface subclasses
1 parent da98a3c commit 6db04b4

File tree

2 files changed

+37
-41
lines changed

2 files changed

+37
-41
lines changed

python/core/raster/qgsrasterinterface.sip

+36-19
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,52 @@ 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>
10+
11+
// QgsRasterInterface subclasses
12+
#include <qgsbrightnesscontrastfilter.h>
13+
#include <qgshuesaturationfilter.h>
1414
#include <qgsrasterdataprovider.h>
15+
#include <qgsrasternuller.h>
16+
#include <qgsrasterprojector.h>
17+
#include <qgsrasterrenderer.h>
18+
#include <qgsrasterresamplefilter.h>
1519

16-
// QgsRasterRenderer subclass headers must be here because ConvertToSubClassCode
17-
// from QgsRasterRenderer is probably included
18-
#include <qgspalettedrasterrenderer.h>
20+
// QgsRasterRenderer subclasses
1921
#include <qgsmultibandcolorrenderer.h>
20-
#include <qgssinglebandpseudocolorrenderer.h>
21-
#include <qgssinglebandgrayrenderer.h>
22+
#include <qgspalettedrasterrenderer.h>
2223
#include <qgssinglebandcolordatarenderer.h>
24+
#include <qgssinglebandgrayrenderer.h>
25+
#include <qgssinglebandpseudocolorrenderer.h>
2326
%End
2427

2528
%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)
29+
if ( dynamic_cast<QgsBrightnessContrastFilter*>(sipCpp))
30+
sipClass = sipClass_QgsBrightnessContrastFilter;
31+
else if (dynamic_cast<QgsHueSaturationFilter*>(sipCpp))
32+
sipClass = sipClass_QgsHueSaturationFilter;
33+
else if (dynamic_cast<QgsRasterDataProvider*>(sipCpp))
34+
sipClass = sipClass_QgsRasterDataProvider;
35+
else if (dynamic_cast<QgsRasterNuller*>(sipCpp))
36+
sipClass = sipClass_QgsRasterNuller;
37+
else if (dynamic_cast<QgsRasterProjector*>(sipCpp))
3338
sipClass = sipClass_QgsRasterProjector;
34-
if (dynamic_cast<QgsRasterDataProvider*>(sipCpp) != NULL)
39+
else if (dynamic_cast<QgsRasterRenderer*>(sipCpp))
3540
{
36-
sipClass = sipClass_QgsRasterDataProvider;
37-
*sipCppRet = static_cast<QgsRasterDataProvider*>(sipCpp);
41+
if ( dynamic_cast<QgsMultiBandColorRenderer*>(sipCpp))
42+
sipClass = sipClass_QgsMultiBandColorRenderer;
43+
else if (dynamic_cast<QgsPalettedRasterRenderer*>(sipCpp))
44+
sipClass = sipClass_QgsPalettedRasterRenderer;
45+
else if (dynamic_cast<QgsSingleBandColorDataRenderer*>(sipCpp))
46+
sipClass = sipClass_QgsSingleBandColorDataRenderer;
47+
else if (dynamic_cast<QgsSingleBandGrayRenderer*>(sipCpp))
48+
sipClass = sipClass_QgsSingleBandGrayRenderer;
49+
else if (dynamic_cast<QgsSingleBandPseudoColorRenderer*>(sipCpp))
50+
sipClass = sipClass_QgsSingleBandPseudoColorRenderer;
51+
else
52+
sipClass = sipClass_QgsRasterRenderer;
3853
}
54+
else if (dynamic_cast<QgsRasterResampleFilter*>(sipCpp))
55+
sipClass = sipClass_QgsRasterResampleFilter;
3956
else
4057
sipClass = 0;
4158
%End

python/core/raster/qgsrasterrenderer.sip

+1-22
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,7 @@
22
class QgsRasterRenderer : QgsRasterInterface
33
{
44
%TypeHeaderCode
5-
#include "qgsrasterrenderer.h"
6-
#include "qgspalettedrasterrenderer.h"
7-
#include "qgsmultibandcolorrenderer.h"
8-
#include "qgssinglebandpseudocolorrenderer.h"
9-
#include "qgssinglebandgrayrenderer.h"
10-
#include "qgssinglebandcolordatarenderer.h"
11-
#include "qgsrasterinterface.h"
12-
%End
13-
14-
%ConvertToSubClassCode
15-
if (dynamic_cast<QgsPalettedRasterRenderer*>(sipCpp) != NULL)
16-
sipClass = sipClass_QgsPalettedRasterRenderer;
17-
else if (dynamic_cast<QgsMultiBandColorRenderer*>(sipCpp) != NULL)
18-
sipClass = sipClass_QgsMultiBandColorRenderer;
19-
else if (dynamic_cast<QgsSingleBandPseudoColorRenderer*>(sipCpp) != NULL)
20-
sipClass = sipClass_QgsSingleBandPseudoColorRenderer;
21-
else if (dynamic_cast<QgsSingleBandGrayRenderer*>(sipCpp) != NULL)
22-
sipClass = sipClass_QgsSingleBandGrayRenderer;
23-
else if (dynamic_cast<QgsSingleBandGrayRenderer*>(sipCpp) != NULL)
24-
sipClass = sipClass_QgsSingleBandGrayRenderer;
25-
else
26-
sipClass = 0;
5+
#include "qgsrasterrenderer.h"
276
%End
287

298
public:

0 commit comments

Comments
 (0)