1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222
|
Description: Correct code to enable use of system proj4
Author: Matthew Woehlke <matthew.woehlke@kitware.com>
Bug: https://bugs.debian.org/750184
Upstream-Bug: http://www.vtk.org/Bug/view.php?id=14126
Index: VTK-6.3.0/CMake/FindLIBPROJ4.cmake
===================================================================
--- VTK-6.3.0.orig/CMake/FindLIBPROJ4.cmake
+++ VTK-6.3.0/CMake/FindLIBPROJ4.cmake
@@ -12,7 +12,7 @@ if ( NOT LIBPROJ4_INCLUDE_DIR OR NOT LIB
endif ()
find_library( LIBPROJ4_LIBRARIES
- NAMES proj4 libproj4
+ NAMES proj
PATHS
${_LIBPROJ4_DIR}/lib64
${CMAKE_INSTALL_PREFIX}/lib64
@@ -24,11 +24,12 @@ if ( NOT LIBPROJ4_INCLUDE_DIR OR NOT LIB
${CMAKE_INSTALL_PREFIX}/lib
/usr/local/lib
/usr/lib
- NO_DEFAULT_PATH
)
+ MESSAGE(STATUS "LIBPROJ4_LIBRARIES=${LIBPROJ4_LIBRARIES}")
+
find_path( LIBPROJ4_INCLUDE_DIR
- NAMES lib_proj.h
+ NAMES proj_api.h
PATHS
${_LIBPROJ4_DIR}
${_LIBPROJ4_DIR}/include
@@ -40,6 +41,8 @@ if ( NOT LIBPROJ4_INCLUDE_DIR OR NOT LIB
NO_DEFAULT_PATH
)
+ MESSAGE(STATUS "LIBPROJ4_INCLUDE_DIR=${LIBPROJ4_INCLUDE_DIR}")
+
if ( NOT LIBPROJ4_INCLUDE_DIR OR NOT LIBPROJ4_LIBRARIES )
if ( LIBPROJ4_REQUIRED )
message( FATAL_ERROR "LIBPROJ4 is required. Set LIBPROJ4_DIR" )
Index: VTK-6.3.0/Geovis/Core/vtkGeoProjection.cxx
===================================================================
--- VTK-6.3.0.orig/Geovis/Core/vtkGeoProjection.cxx
+++ VTK-6.3.0/Geovis/Core/vtkGeoProjection.cxx
@@ -80,7 +80,7 @@ int vtkGeoProjection::GetNumberOfProject
if ( vtkGeoProjectionNumProj < 0 )
{
vtkGeoProjectionNumProj = 0;
- for ( const PROJ_LIST* pj = proj_list; pj && pj->id; ++ pj )
+ for ( const PJ_LIST* pj = pj_list; pj && pj->id; ++ pj )
++ vtkGeoProjectionNumProj;
}
return vtkGeoProjectionNumProj;
@@ -91,7 +91,7 @@ const char* vtkGeoProjection::GetProject
if ( projection < 0 || projection >= vtkGeoProjection::GetNumberOfProjections() )
return 0;
- return proj_list[projection].id;
+ return pj_list[projection].id;
}
//-----------------------------------------------------------------------------
const char* vtkGeoProjection::GetProjectionDescription( int projection )
@@ -99,7 +99,7 @@ const char* vtkGeoProjection::GetProject
if ( projection < 0 || projection >= vtkGeoProjection::GetNumberOfProjections() )
return 0;
- return proj_list[projection].descr[0];
+ return pj_list[projection].descr[0];
}
//-----------------------------------------------------------------------------
vtkGeoProjection::vtkGeoProjection()
@@ -116,7 +116,7 @@ vtkGeoProjection::~vtkGeoProjection()
this->SetName( 0 );
if ( this->Projection )
{
- proj_free( this->Projection );
+ pj_free( this->Projection );
}
delete this->Internals;
this->Internals = NULL;
@@ -142,7 +142,7 @@ int vtkGeoProjection::GetIndex()
if ( ! this->Projection )
return -1;
int i = 0;
- for ( const PROJ_LIST* proj = proj_list; proj && proj->id; ++ proj, ++ i )
+ for ( const PJ_LIST* proj = pj_list; proj && proj->id; ++ proj, ++ i )
{
if ( ! strcmp( proj->id, this->Name ) )
{
@@ -162,7 +162,7 @@ const char* vtkGeoProjection::GetDescrip
return this->Projection->descr;
}
//-----------------------------------------------------------------------------
-PROJ* vtkGeoProjection::GetProjection()
+projPJ vtkGeoProjection::GetProjection()
{
this->UpdateProjection();
return this->Projection;
@@ -178,7 +178,7 @@ int vtkGeoProjection::UpdateProjection()
if ( this->Projection )
{
- proj_free( this->Projection );
+ pj_free( this->Projection );
this->Projection = 0;
}
@@ -217,7 +217,7 @@ int vtkGeoProjection::UpdateProjection()
pjArgs[3+i] = stringHolder[i].c_str();
}
- this->Projection = proj_init( argSize, const_cast<char**>( pjArgs ) );
+ this->Projection = pj_init( argSize, const_cast<char**>( pjArgs ) );
delete[] pjArgs;
if ( this->Projection )
{
Index: VTK-6.3.0/Geovis/Core/vtkGeoProjection.h
===================================================================
--- VTK-6.3.0.orig/Geovis/Core/vtkGeoProjection.h
+++ VTK-6.3.0/Geovis/Core/vtkGeoProjection.h
@@ -29,8 +29,9 @@
#include "vtkGeovisCoreModule.h" // For export macro
#include "vtkObject.h"
-struct PROJconsts;
-typedef PROJconsts PROJ;
+struct PJconsts;
+typedef struct PJconsts PJ;
+typedef PJ* projPJ;
class VTKGEOVISCORE_EXPORT vtkGeoProjection : public vtkObject
{
@@ -85,7 +86,7 @@ public:
// this method returns may be freed, so you should not use the PROJ.4 structure
// after changing any parameters. Also, you should not modify the PROJ.4 structure
// on your own as it will then be out of sync with the vtkGeoProjection class.
- PROJ* GetProjection();
+ projPJ GetProjection();
// Description:
// Add an optional parameter to the projection that will be computed or
@@ -125,7 +126,7 @@ protected:
char* Name;
double CentralMeridian;
- PROJ* Projection;
+ projPJ Projection;
vtkTimeStamp ProjectionMTime;
private:
Index: VTK-6.3.0/Geovis/Core/vtkGeoTransform.cxx
===================================================================
--- VTK-6.3.0.orig/Geovis/Core/vtkGeoTransform.cxx
+++ VTK-6.3.0/Geovis/Core/vtkGeoTransform.cxx
@@ -73,8 +73,8 @@ void vtkGeoTransform::TransformPoints( v
}
dstCoords->DeepCopy( srcCoords );
- PROJ* src = this->SourceProjection ? this->SourceProjection->GetProjection() : 0;
- PROJ* dst = this->DestinationProjection ? this->DestinationProjection->GetProjection() : 0;
+ projPJ src = this->SourceProjection ? this->SourceProjection->GetProjection() : 0;
+ projPJ dst = this->DestinationProjection ? this->DestinationProjection->GetProjection() : 0;
if ( ! src && ! dst )
{
// we've already copied srcCoords to dstCoords and src=dst=0 implies no transform...
@@ -156,20 +156,20 @@ vtkAbstractTransform* vtkGeoTransform::M
void vtkGeoTransform::InternalTransformPoints( double* x, vtkIdType numPts, int stride )
{
- PROJ* src = this->SourceProjection ? this->SourceProjection->GetProjection() : 0;
- PROJ* dst = this->DestinationProjection ? this->DestinationProjection->GetProjection() : 0;
+ projPJ src = this->SourceProjection ? this->SourceProjection->GetProjection() : 0;
+ projPJ dst = this->DestinationProjection ? this->DestinationProjection->GetProjection() : 0;
int delta = stride - 2;
- PROJ_LP lp;
- PROJ_XY xy;
+ projLP lp;
+ projXY xy;
if ( src )
{
// Convert from src system to lat/long using inverse of src transform
double* coord = x;
for ( vtkIdType i = 0; i < numPts; ++ i )
{
- xy.x = coord[0]; xy.y = coord[1];
- lp = proj_inv( xy, src );
- coord[0] = lp.lam; coord[1] = lp.phi;
+ xy.u = coord[0]; xy.v = coord[1];
+ lp = pj_inv( xy, src );
+ coord[0] = lp.u; coord[1] = lp.v;
}
}
else // ! src
@@ -190,9 +190,9 @@ void vtkGeoTransform::InternalTransformP
double* coord = x;
for ( vtkIdType i = 0; i < numPts; ++ i )
{
- lp.lam = coord[0]; lp.phi = coord[1];
- xy = proj_fwd( lp, dst );
- coord[0] = xy.x; coord[1] = xy.y;
+ lp.u = coord[0]; lp.v = coord[1];
+ xy = pj_fwd( lp, dst );
+ coord[0] = xy.u; coord[1] = xy.v;
}
}
else // ! dst
Index: VTK-6.3.0/ThirdParty/libproj4/vtk_libproj4.h.in
===================================================================
--- VTK-6.3.0.orig/ThirdParty/libproj4/vtk_libproj4.h.in
+++ VTK-6.3.0/ThirdParty/libproj4/vtk_libproj4.h.in
@@ -18,7 +18,8 @@
/* Use the libproj4 library configured for VTK. */
#cmakedefine VTK_USE_SYSTEM_LIBPROJ4
#ifdef VTK_USE_SYSTEM_LIBPROJ4
-# include <lib_proj.h>
+# include <projects.h>
+# include <proj_api.h>
#else
# include <vtklibproj4/lib_proj.h>
#endif
|