Skip to content

Commit

Permalink
preliminary raster pipes support
Browse files Browse the repository at this point in the history
  • Loading branch information
blazek committed Jul 1, 2012
1 parent 778f20b commit 8760718
Show file tree
Hide file tree
Showing 24 changed files with 1,070 additions and 514 deletions.
3 changes: 3 additions & 0 deletions src/core/CMakeLists.txt
Expand Up @@ -160,11 +160,13 @@ SET(QGIS_CORE_SRCS
raster/qgslinearminmaxenhancement.cpp
raster/qgslinearminmaxenhancementwithclip.cpp
raster/qgspseudocolorshader.cpp
raster/qgsrasterface.cpp
raster/qgsrasterlayer.cpp
raster/qgsrastertransparency.cpp
raster/qgsrastershader.cpp
raster/qgsrastershaderfunction.cpp

raster/qgsrasterdrawer.cpp
raster/qgsrasterrendererregistry.cpp
raster/qgsrasterrenderer.cpp
raster/qgsbilinearrasterresampler.cpp
Expand Down Expand Up @@ -385,6 +387,7 @@ SET(QGIS_CORE_HDRS
raster/qgspseudocolorshader.h
raster/qgsrasterpyramid.h
raster/qgsrasterbandstats.h
raster/qgsrasterface.h
raster/qgsrasterlayer.h
raster/qgsrastertransparency.h
raster/qgsrastershader.h
Expand Down
10 changes: 10 additions & 0 deletions src/core/qgsrasterdataprovider.cpp
Expand Up @@ -93,6 +93,16 @@ void QgsRasterDataProvider::readBlock( int bandNo, QgsRectangle
free( mySrcData );
}

void * QgsRasterDataProvider::readBlock( int bandNo, QgsRectangle const & extent, int width, int height )
{
QgsDebugMsg( QString( "bandNo = %1 width = %2 height = %3" ).arg( bandNo ).arg( width ).arg( height ) );

// TODO: replace VSIMalloc, it is GDAL function
void * data = VSIMalloc( dataTypeSize( bandNo ) * width * height );
readBlock( bandNo, extent, width, height, data );

return data;
}

QgsRasterDataProvider::QgsRasterDataProvider(): mDpi( -1 )
{
Expand Down
6 changes: 5 additions & 1 deletion src/core/qgsrasterdataprovider.h
Expand Up @@ -25,6 +25,7 @@
#include "qgslogger.h"
#include "qgsrectangle.h"
#include "qgsdataprovider.h"
#include "qgsrasterface.h"
#include "qgscolorrampshader.h"
#include "qgsrasterpyramid.h"
#include "qgscoordinatereferencesystem.h"
Expand All @@ -47,7 +48,7 @@ class QByteArray;
* QgsVectorDataProvider, and does not yet make
* sense for Raster layers.
*/
class CORE_EXPORT QgsRasterDataProvider : public QgsDataProvider
class CORE_EXPORT QgsRasterDataProvider : public QgsDataProvider, public QgsRasterFace
{

Q_OBJECT
Expand Down Expand Up @@ -328,6 +329,9 @@ class CORE_EXPORT QgsRasterDataProvider : public QgsDataProvider
/** read block of data using give extent and size */
virtual void readBlock( int bandNo, QgsRectangle const & viewExtent, int width, int height, QgsCoordinateReferenceSystem theSrcCRS, QgsCoordinateReferenceSystem theDestCRS, void *data );

/** Read block of data using given extent and size. */
virtual void * readBlock( int bandNo, QgsRectangle const & extent, int width, int height );

/* Read a value from a data block at a given index. */
virtual double readValue( void *data, int type, int index );

Expand Down

0 comments on commit 8760718

Please sign in to comment.