[Qgis-developer] Re: Colormap

Peter Ersts ersts at amnh.org
Wed Aug 12 11:33:50 EDT 2009


Sergio,

Glad you found a solution. This highlights something of a problem that 
has come up before in the raster class itself, it has to do with the cast

QgsColorRampShader* myRasterShaderFunction = ( 
QgsColorRampShader*)mRasterLayer->rasterShader()->rasterShaderFunction();

and the need to get to methods specific to the shader. In this case the 
cast will work even if the current shader function is not a color ramp 
shader, but of course when you go to use it as a color ramp shader, 
crash. I think the solution is to use dynamic_cast then check to make 
sure the pointer is not null.

I think it also might be useful if the shaders had ids or names as 
another way of knowing what type of shader you currently have. If you 
think this would be helpful, feel free to file a ticket so that it can 
be added to the growing todo list.

-pete


sergio cavalcante wrote:
> Hey guys,
>
> I've solved the problem.
>
> It was just use the function :
>
>
> mRasterLayer->setRasterShaderFunction(myRasterShaderFunction);
>
>
> at the end of the applypalette() , and and create the 
> myRasterShaderFunction this way:
>
> QgsColorRampShader* myRasterShaderFunction = new 
> QgsColorRampShader(0,255);
>
>
> instead of this way:
>
> QgsRasterLayer * mypLayer = new
>  QgsRasterLayer(myRasterFileInfo.filePath(),myRasterFileInfo.completeBaseName());
>


-- 
====================================
Peter J. Ersts, Software Developer
American Museum of Natural History
Center for Biodiversity and Conservation
Central Park West at 79th Street
New York, New York 10024
Web: http://biodiversityinformatics.amnh.org
Web: http://cbc.amnh.org

Open Source,
...evolving through community cooperation to change the world bit by bit

Quantum GIS Raster Development Team. 



More information about the Qgis-developer mailing list