[QGIS Commit] r11876 - in
trunk/code_examples/5_using_rubber_band_with_canvas: .
cmake_find_rules
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Sun Nov 1 01:44:16 EST 2009
Author: timlinux
Date: 2009-11-01 01:44:13 -0500 (Sun, 01 Nov 2009)
New Revision: 11876
Added:
trunk/code_examples/5_using_rubber_band_with_canvas/cmake_find_rules/
trunk/code_examples/5_using_rubber_band_with_canvas/cmake_find_rules/FindGDAL.cmake
trunk/code_examples/5_using_rubber_band_with_canvas/cmake_find_rules/FindGEOS.cmake
trunk/code_examples/5_using_rubber_band_with_canvas/cmake_find_rules/FindQGIS.cmake
Removed:
trunk/code_examples/5_using_rubber_band_with_canvas/5_using_rubber_band_with_canvas.pro
Modified:
trunk/code_examples/5_using_rubber_band_with_canvas/mainwindow.cpp
Log:
Updated tut5 to use cmake to build and to build against 1.0 api
Deleted: trunk/code_examples/5_using_rubber_band_with_canvas/5_using_rubber_band_with_canvas.pro
===================================================================
--- trunk/code_examples/5_using_rubber_band_with_canvas/5_using_rubber_band_with_canvas.pro 2009-10-31 22:20:16 UTC (rev 11875)
+++ trunk/code_examples/5_using_rubber_band_with_canvas/5_using_rubber_band_with_canvas.pro 2009-11-01 06:44:13 UTC (rev 11876)
@@ -1,40 +0,0 @@
-TEMPLATE = app
-TARGET = qgis_example5
-QT = qt3support sql network svg gui core xml
-LANGUAGE= C++
-linux-g++{
- QGISDIR=[path to installed qgis]
- QGISLIBDIR=$${QGISDIR}/lib
- QGISSRCDIR=[path to qgis src directory]
- QGISPLUGINDIR=$${QGISLIBDIR}/qgis
- DEFINES += QGISPLUGINDIR=$${QGISPLUGINDIR}
- LIBS = -L$${QGISLIBDIR} -lqgis_core -lqgis_raster -lproj -lqgis_gui
-}
-macx{
- QGISDIR=/Users/timsutton/apps/qgis.app/Contents/MacOS/
- QGISLIBDIR=$${QGISDIR}/lib
- QGISSRCDIR=/Users/timsutton/dev/cpp/qgis/src/
- QGISPLUGINDIR=$${QGISLIBDIR}/qgis
- DEFINES += QGISPLUGINDIR=$${QGISPLUGINDIR}
- LIBS = -L$${QGISLIBDIR} -lqgis_core -lqgis_gui -lqgis_raster
-}
-
-INCLUDEPATH = $${QGISDIR}/include/qgis \
- $${QGISSRCDIR}/core \
- $${QGISSRCDIR}/gui \
- $${QGISSRCDIR}/plugins \
- $${QGISSRCDIR}/providers \
- $${QGISSRCDIR}/raster \
- $${QGISSRCDIR}/ui
-
-CONFIG += qt gui exceptions stl warn_on debug thread
-
-RESOURCES += resources.qrc
-
-FORMS += mainwindowbase.ui
-
-HEADERS = mainwindow.h
-
-SOURCES = main.cpp \
- mainwindow.cpp
-
Added: trunk/code_examples/5_using_rubber_band_with_canvas/cmake_find_rules/FindGDAL.cmake
===================================================================
--- trunk/code_examples/5_using_rubber_band_with_canvas/cmake_find_rules/FindGDAL.cmake (rev 0)
+++ trunk/code_examples/5_using_rubber_band_with_canvas/cmake_find_rules/FindGDAL.cmake 2009-11-01 06:44:13 UTC (rev 11876)
@@ -0,0 +1,129 @@
+## Once run this will define:
+##
+## GDAL_FOUND = system has GDAL lib
+##
+## GDAL_LIBRARY = full path to the library
+##
+## GDAL_INCLUDE_DIR = where to find headers
+##
+## Magnus Homann
+
+
+IF(WIN32)
+
+ IF (MINGW)
+ FIND_PATH(GDAL_INCLUDE_DIR gdal.h /usr/local/include /usr/include c:/msys/local/include)
+ FIND_LIBRARY(GDAL_LIBRARY NAMES gdal PATHS /usr/local/lib /usr/lib c:/msys/local/lib)
+ ENDIF (MINGW)
+
+ IF (MSVC)
+ FIND_PATH(GDAL_INCLUDE_DIR gdal.h
+ "$ENV{LIB_DIR}/include/gdal"
+ )
+ FIND_LIBRARY(GDAL_LIBRARY NAMES gdal PATHS
+ "$ENV{LIB_DIR}/lib/"
+ )
+
+ # NOTE: under msvc you should add the following to your target link libraries
+ # list as they are required by gdal
+ #odbc32 odbccp32
+
+ ENDIF (MSVC)
+
+
+ELSE(WIN32)
+ IF(UNIX)
+
+ # try to use framework on mac
+ IF (APPLE)
+ SET (GDAL_MAC_PATH /Library/Frameworks/GDAL.framework/unix/bin)
+ ENDIF (APPLE)
+
+ SET(GDAL_CONFIG_PREFER_PATH "$ENV{GDAL_HOME}/bin" CACHE STRING "preferred path to GDAL (gdal-config)")
+ FIND_PROGRAM(GDAL_CONFIG gdal-config
+ ${GDAL_CONFIG_PREFER_PATH}
+ ${GDAL_MAC_PATH}
+ /usr/local/bin/
+ /usr/bin/
+ )
+ # MESSAGE("DBG GDAL_CONFIG ${GDAL_CONFIG}")
+
+ IF (GDAL_CONFIG)
+ # set INCLUDE_DIR to prefix+include
+ EXEC_PROGRAM(${GDAL_CONFIG}
+ ARGS --prefix
+ OUTPUT_VARIABLE GDAL_PREFIX)
+ #SET(GDAL_INCLUDE_DIR ${GDAL_PREFIX}/include CACHE STRING INTERNAL)
+ FIND_PATH(GDAL_INCLUDE_DIR
+ gdal.h
+ ${GDAL_PREFIX}/include/gdal
+ ${GDAL_PREFIX}/include
+ /usr/local/include
+ /usr/include
+ )
+
+ ## extract link dirs for rpath
+ EXEC_PROGRAM(${GDAL_CONFIG}
+ ARGS --libs
+ OUTPUT_VARIABLE GDAL_CONFIG_LIBS )
+
+ ## split off the link dirs (for rpath)
+ ## use regular expression to match wildcard equivalent "-L*<endchar>"
+ ## with <endchar> is a space or a semicolon
+ STRING(REGEX MATCHALL "[-][L]([^ ;])+"
+ GDAL_LINK_DIRECTORIES_WITH_PREFIX
+ "${GDAL_CONFIG_LIBS}" )
+ # MESSAGE("DBG GDAL_LINK_DIRECTORIES_WITH_PREFIX=${GDAL_LINK_DIRECTORIES_WITH_PREFIX}")
+
+ ## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
+
+ IF (GDAL_LINK_DIRECTORIES_WITH_PREFIX)
+ STRING(REGEX REPLACE "[-][L]" "" GDAL_LINK_DIRECTORIES ${GDAL_LINK_DIRECTORIES_WITH_PREFIX} )
+ ENDIF (GDAL_LINK_DIRECTORIES_WITH_PREFIX)
+
+ ## split off the name
+ ## use regular expression to match wildcard equivalent "-l*<endchar>"
+ ## with <endchar> is a space or a semicolon
+ STRING(REGEX MATCHALL "[-][l]([^ ;])+"
+ GDAL_LIB_NAME_WITH_PREFIX
+ "${GDAL_CONFIG_LIBS}" )
+ # MESSAGE("DBG GDAL_LIB_NAME_WITH_PREFIX=${GDAL_LIB_NAME_WITH_PREFIX}")
+
+
+ ## remove prefix -l because we need the pure name
+
+ IF (GDAL_LIB_NAME_WITH_PREFIX)
+ STRING(REGEX REPLACE "[-][l]" "" GDAL_LIB_NAME ${GDAL_LIB_NAME_WITH_PREFIX} )
+ ENDIF (GDAL_LIB_NAME_WITH_PREFIX)
+
+ IF (APPLE)
+ SET(GDAL_LIBRARY ${GDAL_LINK_DIRECTORIES}/lib${GDAL_LIB_NAME}.dylib CACHE STRING INTERNAL)
+ ELSE (APPLE)
+ SET(GDAL_LIBRARY ${GDAL_LINK_DIRECTORIES}/lib${GDAL_LIB_NAME}.so CACHE STRING INTERNAL)
+ ENDIF (APPLE)
+
+ ELSE(GDAL_CONFIG)
+ MESSAGE("FindGDAL.cmake: gdal-config not found. Please set it manually. GDAL_CONFIG=${GDAL_CONFIG}")
+ ENDIF(GDAL_CONFIG)
+
+ ENDIF(UNIX)
+ENDIF(WIN32)
+
+
+IF (GDAL_INCLUDE_DIR AND GDAL_LIBRARY)
+ SET(GDAL_FOUND TRUE)
+ENDIF (GDAL_INCLUDE_DIR AND GDAL_LIBRARY)
+
+IF (GDAL_FOUND)
+
+ IF (NOT GDAL_FIND_QUIETLY)
+ MESSAGE(STATUS "Found GDAL: ${GDAL_LIBRARY}")
+ ENDIF (NOT GDAL_FIND_QUIETLY)
+
+ELSE (GDAL_FOUND)
+
+ MESSAGE(GDAL_INCLUDE_DIR=${GDAL_INCLUDE_DIR})
+ MESSAGE(GDAL_LIBRARY=${GDAL_LIBRARY})
+ MESSAGE(FATAL_ERROR "Could not find GDAL")
+
+ENDIF (GDAL_FOUND)
Added: trunk/code_examples/5_using_rubber_band_with_canvas/cmake_find_rules/FindGEOS.cmake
===================================================================
--- trunk/code_examples/5_using_rubber_band_with_canvas/cmake_find_rules/FindGEOS.cmake (rev 0)
+++ trunk/code_examples/5_using_rubber_band_with_canvas/cmake_find_rules/FindGEOS.cmake 2009-11-01 06:44:13 UTC (rev 11876)
@@ -0,0 +1,45 @@
+
+# CMake module to search for GEOS library
+#
+# If it's found it sets GEOS_FOUND to TRUE
+# and following variables are set:
+# GEOS_INCLUDE_DIR
+# GEOS_LIBRARY
+
+
+FIND_PATH(GEOS_INCLUDE_DIR geos.h
+ /usr/local/include
+ /usr/include
+ #MSVC
+ "$ENV{LIB_DIR}/include"
+ #mingw
+ c:/msys/local/include
+ )
+
+FIND_LIBRARY(GEOS_LIBRARY NAMES geos PATHS
+ /usr/local/lib
+ /usr/lib
+ #MSVC
+ "$ENV{LIB_DIR}/lib"
+ #mingw
+ c:/msys/local/lib
+ )
+
+IF (GEOS_INCLUDE_DIR AND GEOS_LIBRARY)
+ SET(GEOS_FOUND TRUE)
+ENDIF (GEOS_INCLUDE_DIR AND GEOS_LIBRARY)
+
+
+IF (GEOS_FOUND)
+
+ IF (NOT GEOS_FIND_QUIETLY)
+ MESSAGE(STATUS "Found GEOS: ${GEOS_LIBRARY}")
+ ENDIF (NOT GEOS_FIND_QUIETLY)
+
+ELSE (GEOS_FOUND)
+
+ IF (GEOS_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find GEOS")
+ ENDIF (GEOS_FIND_REQUIRED)
+
+ENDIF (GEOS_FOUND)
Added: trunk/code_examples/5_using_rubber_band_with_canvas/cmake_find_rules/FindQGIS.cmake
===================================================================
--- trunk/code_examples/5_using_rubber_band_with_canvas/cmake_find_rules/FindQGIS.cmake (rev 0)
+++ trunk/code_examples/5_using_rubber_band_with_canvas/cmake_find_rules/FindQGIS.cmake 2009-11-01 06:44:13 UTC (rev 11876)
@@ -0,0 +1,100 @@
+## Once run this will define:
+##
+## QGIS_FOUND = system has QGIS lib
+##
+## QGIS_CORE_LIBRARY = full path to the CORE library
+## QGIS_GUI_LIBRARY = full path to the GUI library
+## QGIS_PLUGIN_DIR = full path to where QGIS plugins are installed
+## QGIS_INCLUDE_DIR = where to find headers
+##
+## Tim Sutton
+
+#MESSAGE("Searching for QGIS")
+IF(WIN32)
+ #MESSAGE("Searching for QGIS in C:/program files/Quantum GIS")
+ IF (MINGW)
+ FIND_PATH(QGIS_PLUGIN_DIR libnortharrowplugin.dll
+ "C:/Program Files/Quantum GIS/plugins"
+ )
+ FIND_PATH(QGIS_INCLUDE_DIR qgsapplication.h
+ "C:/Program Files/Quantum GIS/include"
+ )
+ FIND_LIBRARY(QGIS_CORE_LIBRARY NAMES qgis_core PATHS
+ "C:/Program Files/Quantum GIS/"
+ )
+ FIND_LIBRARY(QGIS_GUI_LIBRARY NAMES qgis_gui PATHS
+ "C:/Program Files/Quantum GIS/"
+ )
+ ENDIF (MINGW)
+
+ IF (MSVC)
+ FIND_PATH(QGIS_PLUGIN_DIR libnortharrowplugin.dll
+ "C:/Program Files/Quantum GIS/lib/qgis"
+ )
+ FIND_PATH(QGIS_INCLUDE_DIR qgsapplication.h
+ "$ENV{LIB_DIR}/include/qgis"
+ )
+ FIND_LIBRARY(QGIS_CORE_LIBRARY NAMES qgis_core PATHS
+ "$ENV{LIB_DIR}/lib/"
+ )
+ FIND_LIBRARY(QGIS_GUI_LIBRARY NAMES qgis_gui PATHS
+ "$ENV{LIB_DIR}/lib/"
+ )
+ ENDIF (MSVC)
+
+ELSE(WIN32)
+ IF(UNIX)
+
+ # try to use bundle on mac
+ IF (APPLE)
+ #MESSAGE("Searching for QGIS in /Applications/QGIS.app/Contents/MacOS")
+ SET (QGIS_MAC_PATH /Applications/QGIS1.0.0.app/Contents/MacOS)
+ SET (QGIS_LIB_DIR ${QGIS_MAC_PATH}/lib)
+ SET (QGIS_PLUGIN_DIR ${QGIS_MAC_PATH}/lib/qgis CACHE STRING INTERNAL)
+ # set INCLUDE_DIR to prefix+include
+ SET(QGIS_INCLUDE_DIR ${QGIS_MAC_PATH}/include/qgis CACHE STRING INTERNAL)
+ ## extract link dirs
+ SET(QGIS_CORE_LIBRARY ${QGIS_LIB_DIR}/libqgis_core.dylib CACHE STRING INTERNAL)
+ SET(QGIS_GUI_LIBRARY ${QGIS_LIB_DIR}/libqgis_gui.dylib CACHE STRING INTERNAL)
+ ELSE (APPLE) # Unix / Linux
+ #MESSAGE("Searching for QGIS in /usr/bin; /usr/local/bin")
+ FIND_PATH(QGIS_PLUGIN_DIR libnortharrowplugin.so
+ /usr/lib/qgis
+ /usr/local/lib/qgis
+ "$ENV{LIB_DIR}/lib/qgis"
+ )
+ FIND_PATH(QGIS_INCLUDE_DIR qgis.h
+ /usr/include/qgis
+ /usr/local/include/qgis
+ "$ENV{LIB_DIR}/include/qgis"
+ )
+ FIND_LIBRARY(QGIS_CORE_LIBRARY NAMES qgis_core PATHS
+ /usr/lib
+ /usr/local/lib
+ "$ENV{LIB_DIR}/lib"
+ )
+ FIND_LIBRARY(QGIS_GUI_LIBRARY NAMES qgis_gui PATHS
+ /usr/lib
+ /usr/local/lib
+ "$ENV{LIB_DIR}/lib"
+ )
+ ENDIF (APPLE)
+ ENDIF(UNIX)
+ENDIF(WIN32)
+
+
+IF (QGIS_INCLUDE_DIR AND QGIS_CORE_LIBRARY AND QGIS_GUI_LIBRARY)
+ SET(QGIS_FOUND TRUE)
+ENDIF (QGIS_INCLUDE_DIR AND QGIS_CORE_LIBRARY AND QGIS_GUI_LIBRARY)
+
+IF (QGIS_FOUND)
+ IF (NOT QGIS_FIND_QUIETLY)
+ MESSAGE(STATUS "Found QGIS Core: ${QGIS_CORE_LIBRARY}")
+ MESSAGE(STATUS "Found QGIS Gui: ${QGIS_GUI_LIBRARY}")
+ MESSAGE(STATUS "Found QGIS Plugins Dir: ${QGIS_PLUGIN_DIR}")
+ ENDIF (NOT QGIS_FIND_QUIETLY)
+ELSE (QGIS_FOUND)
+ IF (QGIS_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find QGIS")
+ ENDIF (QGIS_FIND_REQUIRED)
+ENDIF (QGIS_FOUND)
Modified: trunk/code_examples/5_using_rubber_band_with_canvas/mainwindow.cpp
===================================================================
--- trunk/code_examples/5_using_rubber_band_with_canvas/mainwindow.cpp 2009-10-31 22:20:16 UTC (rev 11875)
+++ trunk/code_examples/5_using_rubber_band_with_canvas/mainwindow.cpp 2009-11-01 06:44:13 UTC (rev 11876)
@@ -36,10 +36,6 @@
//
#include "qgsmaptoolpan.h"
#include "qgsmaptoolzoom.h"
-//
-// Std Includes
-//
-#include <deque.h>
MainWindow::MainWindow(QWidget* parent, Qt::WFlags fl)
: QMainWindow(parent,fl)
@@ -58,9 +54,7 @@
// Create the Map Canvas
mpMapCanvas= new QgsMapCanvas(0, 0);
- qDebug(mpMapCanvas->extent().stringRep(2));
mpMapCanvas->enableAntiAliasing(true);
- mpMapCanvas->useQImageToRender(false);
mpMapCanvas->setCanvasColor(QColor(255, 255, 255));
mpMapCanvas->freeze(false);
mpMapCanvas->setVisible(true);
@@ -124,7 +118,7 @@
}
void MainWindow::addLayer()
{
- QFileInfo myRasterFileInfo("data/Abarema_jupunba_projection.tif");
+ QFileInfo myRasterFileInfo("../data/Abarema_jupunba_projection.tif");
QgsRasterLayer * mypLayer = new QgsRasterLayer(myRasterFileInfo.filePath(),
myRasterFileInfo.completeBaseName());
if (mypLayer->isValid())
@@ -136,20 +130,25 @@
qDebug("Layer is NOT valid");
return;
}
- mypLayer->setColorRampingType(QgsRasterLayer::BLUE_GREEN_RED);
- mypLayer->setDrawingStyle(QgsRasterLayer::SINGLE_BAND_PSEUDO_COLOR);
- std::deque<QString> myLayerSet;
+ // render strategy for grayscale image (will be rendered as pseudocolor)
+ mypLayer->setDrawingStyle( QgsRasterLayer::SingleBandPseudoColor );
+ mypLayer->setColorShadingAlgorithm( QgsRasterLayer::PseudoColorShader );
+ mypLayer->setContrastEnhancementAlgorithm(
+ QgsContrastEnhancement::StretchToMinimumMaximum, false );
+ mypLayer->setMinimumValue( mypLayer->grayBandName(), 0.0, false );
+ mypLayer->setMaximumValue( mypLayer->grayBandName(), 10.0 );
+ //create a layerset
+ QList<QgsMapCanvasLayer> myList;
+ // Add the layers to the Layer Set
+ myList.append(QgsMapCanvasLayer(mypLayer, TRUE));//bool visibility
+ // set the canvas to the extent of our layer
+ mpMapCanvas->setExtent(mypLayer->extent());
// Add the Vector Layer to the Layer Registry
QgsMapLayerRegistry::instance()->addMapLayer(mypLayer, TRUE);
- // Add the Layer to the Layer Set
- myLayerSet.push_back(mypLayer->getLayerID());
- mypLayer->setVisible(TRUE);
- // set teh canvas to the extent of our layer
- mpMapCanvas->setExtent(mypLayer->extent());
// Set the Map Canvas Layer Set
- mpMapCanvas->setLayerSet(myLayerSet);
+ mpMapCanvas->setLayerSet(myList);
}
void MainWindow::on_mpToolShowRubberBand_clicked()
{
More information about the QGIS-commit
mailing list