SHA256
1
0
forked from pool/vtk
vtk/0001-Make-code-calling-proj4-compatible-with-proj4-5.0-an.patch

128 lines
4.8 KiB
Diff
Raw Normal View History

Accepting request 685449 from home:StefanBruens:branches:science - Update to version 8.2.0 * Removed support for TCL and Qt4 * Removed all VTK_OVERRIDE, VTK_FINAL, VTK_DELETE_FUNCTION macros as C++11 is now required. * vtkAbstractArray gained support for runtime user defined free functions, allowing for custom allocator memory to be used with VTK. * The vtkGeovis classes are now deprecated. See https://blog.kitware.com/vtk-8-2-0/ for a more exhaustive list. - Packaging changes: * Python bindings for MPI flavors are now installed below the MPI prefix and thus no longer conflict with each other. To use these, the PYTHONPATH currently has to be amended manually. * Removed several devel Requires: from the devel package. This reduces the dependency chain (e.g. java-devel) for all packages building against VTK, but may require to specify some dependencies explicitly, depending on the used VTK modules and bindings. - Patch updates/additions: * Rebase vtk-fix-file-contains-date-time.patch * Rebase 0001-Allow-compilation-on-GLES-platforms.patch * Drop obsolete fix_qt5_example_cmake.patch * Add bundled_libharu_add_missing_libm.patch * Add bundled_exodusii_add_missing_libpthread.patch * Add 0001-Add-libogg-to-IOMovie-target-link-libraries.patch * Add 0001-Make-code-calling-proj4-compatible-with-proj4-5.0-an.patch Moved two omitted python modules to python3-vtk OBS-URL: https://build.opensuse.org/request/show/685449 OBS-URL: https://build.opensuse.org/package/show/science/vtk?expand=0&rev=136
2019-03-19 14:50:29 +01:00
From afdfe02b0b6a0117e047d0461c1daa29143cb30a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Thu, 14 Mar 2019 23:25:52 +0100
Subject: [PATCH] Make code calling proj4 compatible with proj4 5.0 and later
- projects.h is no longer available in 6.0
- use of proj_api.h has to be opted in since 6.0, to be removed in 7.0
- pj_get_list_ref has been renamed proj_list_operations in 5.0
- PJProps is opaque now, its contents can be accessed with proj_pj_info.
As the contents are no longer global, the const char* from
GetProjectionName has to be copied into the vtkGeoProjection object.
---
Geovis/Core/vtkGeoProjection.cxx | 12 +++++++-----
Geovis/Core/vtkGeoTransform.cxx | 8 ++++----
ThirdParty/libproj/vtk_libproj.h.in | 3 ++-
3 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/Geovis/Core/vtkGeoProjection.cxx b/Geovis/Core/vtkGeoProjection.cxx
index f3a8852d..0bd7678f 100644
--- a/Geovis/Core/vtkGeoProjection.cxx
+++ b/Geovis/Core/vtkGeoProjection.cxx
@@ -72,6 +72,7 @@ public:
}
std::map< std::string, std::string > OptionalParameters;
+ PJ_PROJ_INFO ProjInfo;
};
//-----------------------------------------------------------------------------
@@ -80,7 +81,7 @@ int vtkGeoProjection::GetNumberOfProjections()
if ( vtkGeoProjectionNumProj < 0 )
{
vtkGeoProjectionNumProj = 0;
- for ( const PJ_LIST* pj = pj_get_list_ref(); pj && pj->id; ++ pj )
+ for ( const PJ_LIST* pj = proj_list_operations(); pj && pj->id; ++ pj )
++ vtkGeoProjectionNumProj;
}
return vtkGeoProjectionNumProj;
@@ -91,7 +92,7 @@ const char* vtkGeoProjection::GetProjectionName( int projection )
if ( projection < 0 || projection >= vtkGeoProjection::GetNumberOfProjections() )
return nullptr;
- return pj_get_list_ref()[projection].id;
+ return proj_list_operations()[projection].id;
}
//-----------------------------------------------------------------------------
const char* vtkGeoProjection::GetProjectionDescription( int projection )
@@ -99,7 +100,7 @@ const char* vtkGeoProjection::GetProjectionDescription( int projection )
if ( projection < 0 || projection >= vtkGeoProjection::GetNumberOfProjections() )
return nullptr;
- return pj_get_list_ref()[projection].descr[0];
+ return proj_list_operations()[projection].descr[0];
}
//-----------------------------------------------------------------------------
vtkGeoProjection::vtkGeoProjection()
@@ -144,7 +145,7 @@ void vtkGeoProjection::PrintSelf( ostream& os, vtkIndent indent )
int vtkGeoProjection::GetIndex()
{
int i = 0;
- for ( const PJ_LIST* proj = pj_get_list_ref(); proj && proj->id; ++ proj, ++ i )
+ for ( const PJ_LIST* proj = proj_list_operations(); proj && proj->id; ++ proj, ++ i )
{
if ( ! strcmp( proj->id, this->Name ) )
{
@@ -161,7 +162,7 @@ const char* vtkGeoProjection::GetDescription()
{
return nullptr;
}
- return this->Projection->descr;
+ return this->Internals->ProjInfo.description;
}
//-----------------------------------------------------------------------------
projPJ vtkGeoProjection::GetProjection()
@@ -232,6 +233,7 @@ int vtkGeoProjection::UpdateProjection()
this->ProjectionMTime = this->GetMTime();
if ( this->Projection )
{
+ this->Internals->ProjInfo = proj_pj_info(this->Projection);
return 0;
}
return 1;
diff --git a/Geovis/Core/vtkGeoTransform.cxx b/Geovis/Core/vtkGeoTransform.cxx
index aeeabc10..1ca20f9d 100644
--- a/Geovis/Core/vtkGeoTransform.cxx
+++ b/Geovis/Core/vtkGeoTransform.cxx
@@ -167,9 +167,9 @@ void vtkGeoTransform::InternalTransformPoints( double* x, vtkIdType numPts, int
double* coord = x;
for ( vtkIdType i = 0; i < numPts; ++ i )
{
- xy.u = coord[0]; xy.v = coord[1];
+ xy.x = coord[0]; xy.y = coord[1];
lp = pj_inv( xy, src );
- coord[0] = lp.u; coord[1] = lp.v;
+ coord[0] = lp.lam; coord[1] = lp.phi;
coord += stride;
}
}
@@ -191,9 +191,9 @@ void vtkGeoTransform::InternalTransformPoints( double* x, vtkIdType numPts, int
double* coord = x;
for ( vtkIdType i = 0; i < numPts; ++ i )
{
- lp.u = coord[0]; lp.v = coord[1];
+ lp.lam = coord[0]; lp.phi = coord[1];
xy = pj_fwd( lp, dst );
- coord[0] = xy.u; coord[1] = xy.v;
+ coord[0] = xy.x; coord[1] = xy.y;
coord += stride;
}
}
diff --git a/ThirdParty/libproj/vtk_libproj.h.in b/ThirdParty/libproj/vtk_libproj.h.in
index cd9edc3a..9725eb37 100644
--- a/ThirdParty/libproj/vtk_libproj.h.in
+++ b/ThirdParty/libproj/vtk_libproj.h.in
@@ -18,7 +18,8 @@
/* Use the libproj library configured for VTK. */
#cmakedefine VTK_USE_SYSTEM_LIBPROJ
#ifdef VTK_USE_SYSTEM_LIBPROJ
-# include <projects.h>
+# include <proj.h>
+# define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H 1
# include <proj_api.h>
# include <geodesic.h>
#else
--
2.21.0