From d0d09a00aec4a54f5b838b46235199ba5288d9ea Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Sun, 27 Oct 2024 09:50:53 +0100 Subject: [PATCH] rebuilt with libopencascade >= 7.8.1-2mamba [release 9.3.1-2mamba;Fri Oct 25 2024] --- vtk-9.3.0-occt-7.6.3.patch | 15 ++ vtk-9.3.0-pdal-2.6.0.patch | 76 ++++++ vtk-9.3.1-libfmt-11.0.2.patch | 44 ++++ vtk-9.3.1-opencascade-7.8.1.patch | 93 +++++++ vtk-9.3.1-ospray-3.1.0.patch | 412 ++++++++++++++++++++++++++++++ vtk.spec | 179 +++++++++++-- 6 files changed, 802 insertions(+), 17 deletions(-) create mode 100644 vtk-9.3.0-occt-7.6.3.patch create mode 100644 vtk-9.3.0-pdal-2.6.0.patch create mode 100644 vtk-9.3.1-libfmt-11.0.2.patch create mode 100644 vtk-9.3.1-opencascade-7.8.1.patch create mode 100644 vtk-9.3.1-ospray-3.1.0.patch diff --git a/vtk-9.3.0-occt-7.6.3.patch b/vtk-9.3.0-occt-7.6.3.patch new file mode 100644 index 0000000..cd57c29 --- /dev/null +++ b/vtk-9.3.0-occt-7.6.3.patch @@ -0,0 +1,15 @@ +diff --git a/IO/OCCT/vtkOCCTReader.h b/IO/OCCT/vtkOCCTReader.h +index 36a02f5be3..33fa45fccc 100644 +--- a/IO/OCCT/vtkOCCTReader.h ++++ b/IO/OCCT/vtkOCCTReader.h +@@ -48,8 +48,8 @@ public: + * It can be either STEP or IGES. + * Default is FILE_FORMAT::STEP + */ +- VTK_DEPRECATED_IN_9_3_0("Use SetFormat with unsigned int instead.") +- vtkSetEnumMacro(FileFormat, Format); ++ // VTK_DEPRECATED_IN_9_3_0("Use SetFormat with unsigned int instead.") ++ // vtkSetEnumMacro(FileFormat, Format); + vtkSetClampMacro(FileFormat, unsigned int, Format::STEP, Format::IGES); + ///@} + diff --git a/vtk-9.3.0-pdal-2.6.0.patch b/vtk-9.3.0-pdal-2.6.0.patch new file mode 100644 index 0000000..1ec6654 --- /dev/null +++ b/vtk-9.3.0-pdal-2.6.0.patch @@ -0,0 +1,76 @@ +From ccee5db79d6037c4d752b5f29dc30fb0dfd039bf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timoth=C3=A9e=20Couble?= +Date: Fri, 10 Nov 2023 10:03:07 +0100 +Subject: [PATCH 1/2] IOPDAL: Always links with pdalcpp + +pdal_base and pdal_utils libraries are removed in PDAL 2.6.0 +link with pdalcpp instead starting from this version. +--- + IO/PDAL/CMakeLists.txt | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +diff --git a/IO/PDAL/CMakeLists.txt b/IO/PDAL/CMakeLists.txt +index c31af0410f4..b83a9334109 100644 +--- a/IO/PDAL/CMakeLists.txt ++++ b/IO/PDAL/CMakeLists.txt +@@ -3,14 +3,20 @@ vtk_module_find_package(PACKAGE PDAL VERSION 2.1) + set(classes + vtkPDALReader) + +-set(pdal_libraries pdal_util) +-if (APPLE OR WIN32) ++set(pdal_libraries) ++if (PDAL_VERSION VERSION_LESS "2.6") ++ set(pdal_libraries pdal_util) ++ if (APPLE OR WIN32) ++ list(APPEND pdal_libraries ++ pdalcpp) ++ else() ++ list(APPEND pdal_libraries ++ pdal_base) ++ endif() ++else () + list(APPEND pdal_libraries + pdalcpp) +-else() +- list(APPEND pdal_libraries +- pdal_base) +-endif() ++endif () + + vtk_module_add_module(VTK::IOPDAL + CLASSES ${classes}) +-- +GitLab + + +From 5bf45b44760bac09b0079827346e78af38d981af Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timoth=C3=A9e=20Couble?= +Date: Fri, 10 Nov 2023 10:12:32 +0100 +Subject: [PATCH 2/2] Add support for PDAL 2.0 version + +--- + IO/PDAL/CMakeLists.txt | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/IO/PDAL/CMakeLists.txt b/IO/PDAL/CMakeLists.txt +index b83a9334109..a7027524e4f 100644 +--- a/IO/PDAL/CMakeLists.txt ++++ b/IO/PDAL/CMakeLists.txt +@@ -23,4 +23,13 @@ vtk_module_add_module(VTK::IOPDAL + vtk_module_link(VTK::IOPDAL + PRIVATE + ${pdal_libraries}) ++ ++# PDAL 2.0 didn't include interfaces to its exported targets. ++# Resolved in https://github.com/PDAL/PDAL/issues/2262. ++if (PDAL_VERSION VERSION_LESS "2.1") ++ vtk_module_include(VTK::IOPDAL ++ PRIVATE ++ ${PDAL_INCLUDE_DIRS}) ++endif () ++ + vtk_add_test_mangling(VTK::IOPDAL) +-- +GitLab + diff --git a/vtk-9.3.1-libfmt-11.0.2.patch b/vtk-9.3.1-libfmt-11.0.2.patch new file mode 100644 index 0000000..573735a --- /dev/null +++ b/vtk-9.3.1-libfmt-11.0.2.patch @@ -0,0 +1,44 @@ +diff -ru VTK-9.3.1.orig/ThirdParty/ioss/vtkioss/Ioss_IOFactory.C VTK-9.3.1/ThirdParty/ioss/vtkioss/Ioss_IOFactory.C +--- VTK-9.3.1.orig/ThirdParty/ioss/vtkioss/Ioss_IOFactory.C 2024-09-08 10:39:43.785130427 +0200 ++++ VTK-9.3.1/ThirdParty/ioss/vtkioss/Ioss_IOFactory.C 2024-09-08 10:42:08.072087946 +0200 +@@ -12,6 +12,7 @@ + #include // for nullptr + #include "vtk_fmt.h" + #include VTK_FMT(fmt/ostream.h) ++#include VTK_FMT(fmt/ranges.h) + #include // for _Rb_tree_iterator, etc + #include // for basic_ostream, etc + #include +diff -ru VTK-9.3.1.orig/ThirdParty/ioss/vtkioss/Ioss_StructuredBlock.C VTK-9.3.1/ThirdParty/ioss/vtkioss/Ioss_StructuredBlock.C +--- VTK-9.3.1.orig/ThirdParty/ioss/vtkioss/Ioss_StructuredBlock.C 2024-09-08 10:39:43.788463820 +0200 ++++ VTK-9.3.1/ThirdParty/ioss/vtkioss/Ioss_StructuredBlock.C 2024-09-08 10:57:28.625305675 +0200 +@@ -15,6 +15,7 @@ + #include + #include "vtk_fmt.h" + #include VTK_FMT(fmt/ostream.h) ++#include VTK_FMT(fmt/ranges.h) + + #include // for size_t + #include +diff -ru VTK-9.3.1.orig/ThirdParty/ioss/vtkioss/Ioss_Utils.C VTK-9.3.1/ThirdParty/ioss/vtkioss/Ioss_Utils.C +--- VTK-9.3.1.orig/ThirdParty/ioss/vtkioss/Ioss_Utils.C 2024-09-08 10:39:43.791797211 +0200 ++++ VTK-9.3.1/ThirdParty/ioss/vtkioss/Ioss_Utils.C 2024-09-08 10:47:06.456187726 +0200 +@@ -21,6 +21,7 @@ + #include VTK_FMT(fmt/chrono.h) + #include VTK_FMT(fmt/format.h) + #include VTK_FMT(fmt/ostream.h) ++#include VTK_FMT(fmt/ranges.h) + #include + #include + #include +diff -ru VTK-9.3.1.orig/ThirdParty/ioss/vtkioss/Ioss_ZoneConnectivity.C VTK-9.3.1/ThirdParty/ioss/vtkioss/Ioss_ZoneConnectivity.C +--- VTK-9.3.1.orig/ThirdParty/ioss/vtkioss/Ioss_ZoneConnectivity.C 2024-09-08 10:39:43.791797211 +0200 ++++ VTK-9.3.1/ThirdParty/ioss/vtkioss/Ioss_ZoneConnectivity.C 2024-09-08 10:51:18.889659250 +0200 +@@ -9,6 +9,7 @@ + #include // for size_t + #include "vtk_fmt.h" + #include VTK_FMT(fmt/ostream.h) ++#include VTK_FMT(fmt/ranges.h) + #include // for string + #include // for vector + diff --git a/vtk-9.3.1-opencascade-7.8.1.patch b/vtk-9.3.1-opencascade-7.8.1.patch new file mode 100644 index 0000000..84477c7 --- /dev/null +++ b/vtk-9.3.1-opencascade-7.8.1.patch @@ -0,0 +1,93 @@ +From 761aa1d15970fcb6aadb7d6152737fa9b2d4b0d0 Mon Sep 17 00:00:00 2001 +From: Lars Glud +Date: Fri, 24 May 2024 07:58:23 +0200 +Subject: [PATCH] Make compatible with opencascade 7.8.0. + +--- + IO/OCCT/CMakeLists.txt | 28 ++++++++++++++++++++-------- + IO/OCCT/vtkOCCTReader.cxx | 13 ++++++++++++- + 2 files changed, 32 insertions(+), 9 deletions(-) + +diff --git a/IO/OCCT/CMakeLists.txt b/IO/OCCT/CMakeLists.txt +index e81444ecebd..4baddeb719b 100644 +--- a/IO/OCCT/CMakeLists.txt ++++ b/IO/OCCT/CMakeLists.txt +@@ -4,12 +4,25 @@ vtk_module_find_package(PRIVATE_IF_SHARED + VERSION_VAR "@OpenCASCADE_MAJOR_VERSION@.@OpenCASCADE_MINOR_VERSION@.@OpenCASCADE_MAINTENANCE_VERSION@" + ) + +-set(opencascade_req_targets +- TKSTEP +- TKIGES +- TKMesh +- TKXDESTEP +- TKXDEIGES) ++if (OpenCASCADE_VERSION VERSION_GREATER_EQUAL "7.8.0") ++ set(opencascade_req_targets ++ TKDESTEP ++ TKDEIGES ++ TKernel ++ TKMath ++ TKMesh ++ TKBRep ++ TKXSBase ++ TKLCAF ++ TKXCAF) ++else() ++ set(opencascade_req_targets ++ TKSTEP ++ TKIGES ++ TKMesh ++ TKXDESTEP ++ TKXDEIGES) ++endif() + set(opencascade_missing_targets) + foreach (opencascade_req_target IN LISTS opencascade_req_targets) + if (NOT TARGET "${opencascade_req_target}") +@@ -35,8 +48,7 @@ vtk_module_link(VTK::IOOCCT + ${opencascade_req_targets}) + + # OpenCASCADE started putting include directory usage requirements in 7.7.0. +-set(OpenCASCADE_VERSION +- "${OpenCASCADE_MAJOR_VERSION}.${OpenCASCADE_MINOR_VERSION}.${OpenCASCADE_MAINTENANCE_VERSION}") ++ + if (OpenCASCADE_VERSION VERSION_LESS "7.7.0") + vtk_module_include(VTK::IOOCCT PRIVATE "${OpenCASCADE_INCLUDE_DIR}") + endif () +diff --git a/IO/OCCT/vtkOCCTReader.cxx b/IO/OCCT/vtkOCCTReader.cxx +index 52e76be72c1..5aca5c93c8c 100644 +--- a/IO/OCCT/vtkOCCTReader.cxx ++++ b/IO/OCCT/vtkOCCTReader.cxx +@@ -345,11 +345,19 @@ class vtkOCCTReader::vtkInternals + } + + //---------------------------------------------------------------------------- ++#if VTK_OCCT_VERSION(7, 8, 0) <= OCC_VERSION_HEX ++ size_t GetHash(const TDF_Label& label) ++ { ++ TopoDS_Shape aShape; ++ return this->ShapeTool->GetShape(label, aShape) ? std::hash{}(aShape) : 0; ++ } ++#else + int GetHash(const TDF_Label& label) + { + TopoDS_Shape aShape; + return this->ShapeTool->GetShape(label, aShape) ? aShape.HashCode(INT_MAX) : 0; + } ++#endif + + //---------------------------------------------------------------------------- + static void GetMatrix(const TopLoc_Location& loc, vtkMatrix4x4* mat) +@@ -381,8 +389,11 @@ class vtkOCCTReader::vtkInternals + GetMatrix(hLoc->Get(), location); + } + } +- ++#if VTK_OCCT_VERSION(7, 8, 0) <= OCC_VERSION_HEX ++ std::unordered_map> ShapeMap; ++#else + std::unordered_map> ShapeMap; ++#endif + Handle(XCAFDoc_ShapeTool) ShapeTool; + Handle(XCAFDoc_ColorTool) ColorTool; + diff --git a/vtk-9.3.1-ospray-3.1.0.patch b/vtk-9.3.1-ospray-3.1.0.patch new file mode 100644 index 0000000..a974146 --- /dev/null +++ b/vtk-9.3.1-ospray-3.1.0.patch @@ -0,0 +1,412 @@ +From 6fa86e668c67015e961e2c4667f2fbc719d6188b Mon Sep 17 00:00:00 2001 +From: "David E. DeMarle" +Date: Tue, 19 Sep 2023 21:27:45 -0400 +Subject: [PATCH 1/2] bump VTK to OSPRay 3 API + +Change CMake script to look for 3. +Stop using previously deprecated OSPRay APIs, they are removed in 3.0. +Use new parameter signatures including: + uint for enums + box1f instead of vec2f for ranges + "valueRanges" TransferFunction parameter is now "value". + linear2d for texture transforms +ospNewMaterial no longer accepts renderertype first argument +Implicit isocontours now take their appearance settings from + GeometricModel instead of VolumetricModel. +--- + Rendering/RayTracing/CMakeLists.txt | 2 +- + Rendering/RayTracing/RTWrapper/Backend.h | 5 ++- + .../RTWrapper/OSPRay/OSPRayBackend.h | 25 ++++++++++----- + Rendering/RayTracing/RTWrapper/RTWrapper.h | 3 ++ + .../RayTracing/vtkOSPRayMaterialHelpers.cxx | 9 +++--- + .../vtkOSPRayMoleculeMapperNode.cxx | 8 ++--- + .../vtkOSPRayPointGaussianMapperNode.cxx | 2 +- + .../vtkOSPRayPolyDataMapperNode.cxx | 32 +++++++++---------- + .../vtkOSPRayUnstructuredVolumeMapperNode.cxx | 2 +- + .../RayTracing/vtkOSPRayVolumeMapperNode.cxx | 24 ++++++++++++-- + .../RayTracing/vtkOSPRayVolumeMapperNode.h | 1 + + 11 files changed, 73 insertions(+), 40 deletions(-) + +diff --git a/Rendering/RayTracing/CMakeLists.txt b/Rendering/RayTracing/CMakeLists.txt +index 9d5ad4dd828..baa3078065e 100644 +--- a/Rendering/RayTracing/CMakeLists.txt ++++ b/Rendering/RayTracing/CMakeLists.txt +@@ -58,7 +58,7 @@ vtk_module_add_module(VTK::RenderingRayTracing + if (VTK_ENABLE_OSPRAY) + vtk_module_find_package(PRIVATE_IF_SHARED + PACKAGE ospray +- VERSION 2.1) ++ VERSION 3.0) + + vtk_module_link(VTK::RenderingRayTracing + PRIVATE +diff --git a/Rendering/RayTracing/RTWrapper/Backend.h b/Rendering/RayTracing/RTWrapper/Backend.h +index e35e789f345..ba13a89cb7c 100644 +--- a/Rendering/RayTracing/RTWrapper/Backend.h ++++ b/Rendering/RayTracing/RTWrapper/Backend.h +@@ -30,7 +30,7 @@ VTK_ABI_NAMESPACE_BEGIN + virtual RTWGroup NewGroup() = 0; + virtual RTWTexture NewTexture(const char* type) = 0; + virtual RTWLight NewLight(const char *light_type) = 0; +- virtual RTWMaterial NewMaterial(const char *renderer_type, const char *material_type) = 0; ++ virtual RTWMaterial NewMaterial(const char *material_type) = 0; + virtual RTWVolume NewVolume(const char *type) = 0; + virtual RTWVolumetricModel NewVolumetricModel(RTWVolume volume) = 0; + virtual RTWTransferFunction NewTransferFunction(const char *type) = 0; +@@ -49,13 +49,16 @@ VTK_ABI_NAMESPACE_BEGIN + virtual void SetObjectAsData(RTWObject target, const char *id, RTWDataType type, RTWObject obj) = 0; + virtual void SetParam(RTWObject, const char *id, RTWDataType type, const void* mem) = 0; + virtual void SetBool(RTWObject, const char *id, bool x) = 0; ++ virtual void SetBox1f(RTWObject, const char *id, float x, float y) = 0; + virtual void SetInt(RTWObject, const char *id, int32_t x) = 0; ++ virtual void SetUInt(RTWObject, const char *id, uint32_t x) = 0; + virtual void SetVec2i(RTWObject, const char *id, int32_t x, int32_t y) = 0; + virtual void SetFloat(RTWObject, const char *id, float x) = 0; + virtual void SetVec2f(RTWObject, const char *id, float x, float y) = 0; + virtual void SetVec3i(RTWObject, const char *id, int x, int y, int z) = 0; + virtual void SetVec3f(RTWObject, const char *id, float x, float y, float z) = 0; + virtual void SetVec4f(RTWObject, const char *id, float x, float y, float z, float w) = 0; ++ virtual void SetLinear2f(RTWObject, const char *id, float x, float y, float z, float w) = 0; + + virtual void RemoveParam(RTWObject, const char *id) = 0; + +diff --git a/Rendering/RayTracing/RTWrapper/OSPRay/OSPRayBackend.h b/Rendering/RayTracing/RTWrapper/OSPRay/OSPRayBackend.h +index 4ee1be32282..f3fe5209b7b 100644 +--- a/Rendering/RayTracing/RTWrapper/OSPRay/OSPRayBackend.h ++++ b/Rendering/RayTracing/RTWrapper/OSPRay/OSPRayBackend.h +@@ -84,15 +84,9 @@ VTK_ABI_NAMESPACE_BEGIN + { + std::runtime_error("OSPRay device could not be fetched!"); + } +-#if OSPRAY_VERSION_MINOR > 1 + ospDeviceSetErrorCallback(device, [](void *, OSPError, const char *errorDetails) { + std::cerr << "OSPRay ERROR: " << errorDetails << std::endl; + }, nullptr); +-#else +- ospDeviceSetErrorFunc(device, [](OSPError, const char *errorDetails) { +- std::cerr << "OSPRay ERROR: " << errorDetails << std::endl; +- }); +-#endif + once = true; + } + return ret; +@@ -199,9 +193,9 @@ VTK_ABI_NAMESPACE_BEGIN + return reinterpret_cast(ospNewLight(light_type)); + } + +- RTWMaterial NewMaterial(const char *renderer_type, const char *material_type) override ++ RTWMaterial NewMaterial(const char *material_type) override + { +- return reinterpret_cast(ospNewMaterial(renderer_type, material_type)); ++ return reinterpret_cast(ospNewMaterial(material_type)); + } + + RTWVolume NewVolume(const char *type) override +@@ -280,6 +274,11 @@ VTK_ABI_NAMESPACE_BEGIN + ospSetInt(reinterpret_cast(object), id, x); + } + ++ void SetUInt(RTWObject object, const char *id, uint32_t x) override ++ { ++ ospSetUInt(reinterpret_cast(object), id, x); ++ } ++ + void SetBool(RTWObject object, const char *id, bool x) override + { + ospSetBool(reinterpret_cast(object), id, x); +@@ -290,6 +289,16 @@ VTK_ABI_NAMESPACE_BEGIN + ospSetFloat(reinterpret_cast(object), id, x); + } + ++ void SetLinear2f(RTWObject object, const char *id, float x, float y, float z, float w) override ++ { ++ ospSetLinear2f(reinterpret_cast(object), id, x, y, z, w); ++ } ++ ++ void SetBox1f(RTWObject object, const char *id, float x, float y) override ++ { ++ ospSetBox1f(reinterpret_cast(object), id, x, y); ++ } ++ + void SetVec2f(RTWObject object, const char *id, float x, float y) override + { + ospSetVec2f(reinterpret_cast(object), id, x, y); +diff --git a/Rendering/RayTracing/RTWrapper/RTWrapper.h b/Rendering/RayTracing/RTWrapper/RTWrapper.h +index 1bbdb893a42..ebbe18aef99 100644 +--- a/Rendering/RayTracing/RTWrapper/RTWrapper.h ++++ b/Rendering/RayTracing/RTWrapper/RTWrapper.h +@@ -140,7 +140,10 @@ std::set rtwGetAvailableBackends(); + + #define ospSetFloat backend->SetFloat + #define ospSetBool backend->SetBool ++#define ospSetBox1f backend->SetBox1f + #define ospSetInt backend->SetInt ++#define ospSetLinear2f backend->SetLinear2f ++#define ospSetUInt backend->SetUInt + #define ospSetVec2i backend->SetVec2i + #define ospSetVec3i backend->SetVec3i + #define ospSetVec2f backend->SetVec2f +diff --git a/Rendering/RayTracing/vtkOSPRayMaterialHelpers.cxx b/Rendering/RayTracing/vtkOSPRayMaterialHelpers.cxx +index 12fb6aaf98d..e21a761253b 100644 +--- a/Rendering/RayTracing/vtkOSPRayMaterialHelpers.cxx ++++ b/Rendering/RayTracing/vtkOSPRayMaterialHelpers.cxx +@@ -70,10 +70,10 @@ OSPTexture NewTexture2D(RTW::Backend* backend, const osp::vec2i& size, const OSP + ospSetObject(texture, "data", data_handle); + ospRelease(data_handle); + +- ospSetInt(texture, "format", static_cast(type)); ++ ospSetUInt(texture, "format", type); + if (flags & OSP_TEXTURE_FILTER_NEAREST) + { +- ospSetInt(texture, "filter", OSP_TEXTURE_FILTER_NEAREST); ++ ospSetUInt(texture, "filter", OSP_TEXTURE_FILTER_NEAREST); + } + ospCommit(texture); + +@@ -362,14 +362,13 @@ OSPMaterial NewMaterial(vtkOSPRayRendererNode* orn, OSPRenderer oRenderer, std:: + return result; + + (void)oRenderer; +- const std::string rendererType = vtkOSPRayRendererNode::GetRendererType(orn->GetRenderer()); +- result = ospNewMaterial(rendererType.c_str(), ospMatName.c_str()); ++ result = ospNewMaterial(ospMatName.c_str()); + + if (!result) + { + vtkGenericWarningMacro( + "OSPRay failed to create material: " << ospMatName << ". Trying obj instead."); +- result = ospNewMaterial(rendererType.c_str(), "obj"); ++ result = ospNewMaterial("obj"); + } + + ospCommit(result); +diff --git a/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.cxx +index 5c0f36de21b..3ae794ed0f0 100644 +--- a/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.cxx ++++ b/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.cxx +@@ -292,8 +292,8 @@ void vtkOSPRayMoleculeMapperNode::Render(bool prepass) + ospRelease(oMaterial); + } + +- ospSetInt(bonds, "type", OSP_ROUND); +- ospSetInt(bonds, "basis", OSP_BEZIER); ++ ospSetUInt(bonds, "type", OSP_ROUND); ++ ospSetUInt(bonds, "basis", OSP_BEZIER); + + this->GeometricModels.emplace_back(bondsModel); + ospCommit(bonds); +@@ -394,8 +394,8 @@ void vtkOSPRayMoleculeMapperNode::Render(bool prepass) + ocolor[3] = opacity; + ospSetVec3f(latticeModel, "color", ocolor[0], ocolor[1], ocolor[2]); + +- ospSetInt(lattice, "type", OSP_ROUND); +- ospSetInt(lattice, "basis", OSP_LINEAR); ++ ospSetUInt(lattice, "type", OSP_ROUND); ++ ospSetUInt(lattice, "basis", OSP_LINEAR); + + this->GeometricModels.emplace_back(latticeModel); + ospCommit(lattice); +diff --git a/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.cxx +index f294bf4b2f8..be040f627c5 100644 +--- a/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.cxx ++++ b/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.cxx +@@ -280,7 +280,7 @@ OSPVolumetricModel RenderAsParticles(osp::vec3f* vertices, std::vector(wRange[0]), static_cast(wRange[1])); ++ ospSetBox1f(oTF, "value", static_cast(wRange[0]), static_cast(wRange[1])); + ospCommit(oTF); + ospRelease(_Colors); + ospRelease(_AlphaData); +diff --git a/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.cxx +index 8031b169f3f..3f5fb31fd17 100644 +--- a/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.cxx ++++ b/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.cxx +@@ -304,8 +304,8 @@ OSPGeometricModel RenderAsCylinders(std::vector& vertices, + _mdata = ospNewCopyData1D(mdata.data(), OSP_VEC4F, mdata.size()); + ospCommit(_mdata); + ospSetObject(ospMesh, "vertex.position_radius", _mdata); +- ospSetInt(ospMesh, "type", OSP_ROUND); +- ospSetInt(ospMesh, "basis", OSP_BEZIER); ++ ospSetUInt(ospMesh, "type", OSP_ROUND); ++ ospSetUInt(ospMesh, "basis", OSP_BEZIER); + } + else + { +@@ -319,8 +319,8 @@ OSPGeometricModel RenderAsCylinders(std::vector& vertices, + ospCommit(_mdata); + ospSetObject(ospMesh, "vertex.position", _mdata); + ospSetFloat(ospMesh, "radius", lineWidth); +- ospSetInt(ospMesh, "type", OSP_ROUND); +- ospSetInt(ospMesh, "basis", OSP_LINEAR); ++ ospSetUInt(ospMesh, "type", OSP_ROUND); ++ ospSetUInt(ospMesh, "basis", OSP_LINEAR); + } + + std::vector indices; +@@ -530,13 +530,13 @@ OSPGeometricModel RenderAsTriangles(OSPData vertices, std::vector& + if (interpolationType == VTK_PBR) + { + ospSetObject(actorMaterial, "map_normal", t2d); +- ospSetVec4f(actorMaterial, "map_normal.transform", textureTransform.x, textureTransform.y, +- textureTransform.z, textureTransform.w); ++ ospSetLinear2f(actorMaterial, "map_normal.transform", textureTransform.x, ++ textureTransform.y, textureTransform.z, textureTransform.w); + } + else + { + ospSetObject(actorMaterial, "map_Bump", t2d); +- ospSetVec4f(actorMaterial, "map_Bump.transform", textureTransform.x, textureTransform.y, ++ ospSetLinear2f(actorMaterial, "map_Bump.transform", textureTransform.x, textureTransform.y, + textureTransform.z, textureTransform.w); + } + ospCommit(actorMaterial); +@@ -562,13 +562,13 @@ OSPGeometricModel RenderAsTriangles(OSPData vertices, std::vector& + + OSPTexture t2dR = vtkOSPRayMaterialHelpers::VTKToOSPTexture(backend, vRoughnessTextureMap); + ospSetObject(actorMaterial, "map_roughness", t2dR); +- ospSetVec4f(actorMaterial, "map_roughness.transform", textureTransform.x, ++ ospSetLinear2f(actorMaterial, "map_roughness.transform", textureTransform.x, + textureTransform.y, textureTransform.z, textureTransform.w); + + OSPTexture t2dM = vtkOSPRayMaterialHelpers::VTKToOSPTexture(backend, vMetallicTextureMap); + ospSetObject(actorMaterial, "map_metallic", t2dM); +- ospSetVec4f(actorMaterial, "map_metallic.transform", textureTransform.x, textureTransform.y, +- textureTransform.z, textureTransform.w); ++ ospSetLinear2f(actorMaterial, "map_metallic.transform", textureTransform.x, ++ textureTransform.y, textureTransform.z, textureTransform.w); + + ospCommit(actorMaterial); + ospRelease(t2dR); +@@ -593,14 +593,14 @@ OSPGeometricModel RenderAsTriangles(OSPData vertices, std::vector& + OSPTexture t2dA = + vtkOSPRayMaterialHelpers::VTKToOSPTexture(backend, vAnisotropyValueTextureMap); + ospSetObject(actorMaterial, "map_anisotropy", t2dA); +- ospSetVec4f(actorMaterial, "map_anisotropy.transform", textureTransform.x, ++ ospSetLinear2f(actorMaterial, "map_anisotropy.transform", textureTransform.x, + textureTransform.y, textureTransform.z, textureTransform.w); + + OSPTexture t2dR = + vtkOSPRayMaterialHelpers::VTKToOSPTexture(backend, vAnisotropyRotationTextureMap); + ospSetObject(actorMaterial, "map_rotation", t2dR); +- ospSetVec4f(actorMaterial, "map_rotation.transform", textureTransform.x, textureTransform.y, +- textureTransform.z, textureTransform.w); ++ ospSetLinear2f(actorMaterial, "map_rotation.transform", textureTransform.x, ++ textureTransform.y, textureTransform.z, textureTransform.w); + ospCommit(actorMaterial); + ospRelease(t2dA); + ospRelease(t2dR); +@@ -610,7 +610,7 @@ OSPGeometricModel RenderAsTriangles(OSPData vertices, std::vector& + { + OSPTexture t2d = vtkOSPRayMaterialHelpers::VTKToOSPTexture(backend, vCoatNormalTextureMap); + ospSetObject(actorMaterial, "map_coatNormal", t2d); +- ospSetVec4f(actorMaterial, "map_coatNormal.transform", textureTransform.x, ++ ospSetLinear2f(actorMaterial, "map_coatNormal.transform", textureTransform.x, + textureTransform.y, textureTransform.z, textureTransform.w); + ospCommit(actorMaterial); + ospRelease(t2d); +@@ -624,13 +624,13 @@ OSPGeometricModel RenderAsTriangles(OSPData vertices, std::vector& + if (interpolationType == VTK_PBR) + { + ospSetObject(actorMaterial, "map_baseColor", ((OSPTexture)(t2d))); +- ospSetVec4f(actorMaterial, "map_baseColor.transform", textureTransform.x, ++ ospSetLinear2f(actorMaterial, "map_baseColor.transform", textureTransform.x, + textureTransform.y, textureTransform.z, textureTransform.w); + } + else + { + ospSetObject(actorMaterial, "map_kd", ((OSPTexture)(t2d))); +- ospSetVec4f(actorMaterial, "map_kd.transform", textureTransform.x, textureTransform.y, ++ ospSetLinear2f(actorMaterial, "map_kd.transform", textureTransform.x, textureTransform.y, + textureTransform.z, textureTransform.w); + } + ospCommit(actorMaterial); +diff --git a/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.cxx +index 2662d7ac045..c764314c061 100644 +--- a/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.cxx ++++ b/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.cxx +@@ -355,7 +355,7 @@ void vtkOSPRayUnstructuredVolumeMapperNode::Render(bool prepass) + OSPData tfAlphaData = ospNewCopyData1D(&tfOVals[0], OSP_FLOAT, NumColors); + ospCommit(tfAlphaData); + ospSetObject(oTF, "opacity", tfAlphaData); +- ospSetVec2f(oTF, "valueRange", range[0], range[1]); ++ ospSetBox1f(oTF, "value", (float)range[0], (float)range[1]); + ospCommit(oTF); + + ospRelease(colorData); +diff --git a/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.cxx +index 564a8be1eb4..dc65c5ac9a3 100644 +--- a/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.cxx ++++ b/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.cxx +@@ -322,7 +322,7 @@ void vtkOSPRayVolumeMapperNode::Render(bool prepass) + ospCommit(isosurfaces); + + ospSetObject(OSPRayIsosurface, "isovalue", isosurfaces); +- ospSetObject(OSPRayIsosurface, "volume", this->OSPRayVolumeModel); ++ ospSetObject(OSPRayIsosurface, "volume", this->OSPRayVolume); + ospCommit(OSPRayIsosurface); + ospRelease(isosurfaces); + +@@ -330,12 +330,15 @@ void vtkOSPRayVolumeMapperNode::Render(bool prepass) + OSPInstance instance = ospNewInstance(group); + + OSPGeometricModel OSPRayGeometricModel = ospNewGeometricModel(OSPRayIsosurface); +- ++ OSPData ospIsoColors = ospNewCopyData1D(this->IsoColors.data(), OSP_VEC4F, nbContours); ++ ospCommit(ospIsoColors); ++ ospSetObject(OSPRayGeometricModel, "color", ospIsoColors); + OSPMaterial material = + vtkOSPRayMaterialHelpers::NewMaterial(orn, orn->GetORenderer(), "obj"); + ospCommit(material); + ospSetObjectAsData(OSPRayGeometricModel, "material", OSP_MATERIAL, material); + ospCommit(OSPRayGeometricModel); ++ ospRelease(ospIsoColors); + ospRelease(material); + ospRelease(OSPRayIsosurface); + +@@ -417,7 +420,7 @@ void vtkOSPRayVolumeMapperNode::UpdateTransferFunction( + ospCommit(colorData); + ospSetObject(this->TransferFunction, "color", colorData); + +- ospSetVec2f(this->TransferFunction, "valueRange", tfRange.x, tfRange.y); ++ ospSetBox1f(this->TransferFunction, "value", tfRange.x, tfRange.y); + + OSPData tfAlphaData = ospNewCopyData1D(&this->TFOVals[0], OSP_FLOAT, this->NumColors); + ospCommit(tfAlphaData); +@@ -427,6 +430,21 @@ void vtkOSPRayVolumeMapperNode::UpdateTransferFunction( + ospRelease(colorData); + ospRelease(tfAlphaData); + ++ vtkContourValues* contours = volProperty->GetIsoSurfaceValues(); ++ this->IsoColors.clear(); ++ if (contours) ++ { ++ double* p = contours->GetValues(); ++ for (auto i = 0; i < contours->GetNumberOfContours(); ++i) ++ { ++ double* ncol = colorTF->GetColor(p[i]); ++ this->IsoColors.push_back(ncol[0]); ++ this->IsoColors.push_back(ncol[1]); ++ this->IsoColors.push_back(ncol[2]); ++ this->IsoColors.push_back(scalarTF->GetValue(p[i])); ++ } ++ } ++ + this->PropertyTime.Modified(); + } + VTK_ABI_NAMESPACE_END +diff --git a/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.h b/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.h +index 267875f057b..7769aece01c 100644 +--- a/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.h ++++ b/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.h +@@ -68,6 +68,7 @@ protected: + + std::vector TFVals; + std::vector TFOVals; ++ std::vector IsoColors; + + vtkOSPRayCache* Cache; + +-- +GitLab diff --git a/vtk.spec b/vtk.spec index 0ffdcb0..91f55ee 100644 --- a/vtk.spec +++ b/vtk.spec @@ -1,26 +1,103 @@ %define majver %(echo %version | cut -d. -f1-2) +%define fastfloatver %(rpm -q --queryformat '%%{version}' libfast_float-devel | head -n1) Name: vtk -Version: 9.3.0 -Release: 1mamba -Summary: Software for manipulating and displaying scientific data +Version: 9.3.1 +Release: 2mamba +Summary: Software system for 3D computer graphics, image processing, and visualization Group: Applications/Scientific Vendor: openmamba Distribution: openmamba Packager: Silvan Calarco URL: https://vtk.org/ Source: https://www.vtk.org/files/release/%{majver}/VTK-%{version}.tar.gz +Patch0: vtk-9.3.0-pdal-2.6.0.patch +Patch1: vtk-9.3.1-ospray-3.1.0.patch +Patch2: vtk-9.3.0-occt-7.6.3.patch +Patch3: vtk-9.3.1-libfmt-11.0.2.patch +Patch4: vtk-9.3.1-opencascade-7.8.1.patch License: BSD ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel +BuildRequires: java-openjdk17-headless +BuildRequires: java-openjdk17-runtime +BuildRequires: libQt5Core +BuildRequires: libQt5Gui +BuildRequires: libQt5Network +BuildRequires: libQt5OpenGL +BuildRequires: libQt5Sql +BuildRequires: libQt5Widgets BuildRequires: libX11-devel BuildRequires: libXcursor-devel BuildRequires: libXfixes-devel BuildRequires: libXrender-devel +BuildRequires: libadios2-devel +BuildRequires: libarchive-devel +BuildRequires: libavcodec-devel +BuildRequires: libavformat-devel +BuildRequires: libavutil-devel +BuildRequires: libboost-devel +BuildRequires: libbzip2-devel +BuildRequires: libcgns-devel +BuildRequires: libcurl-devel +BuildRequires: libdouble-conversion-devel +BuildRequires: libexpat-devel +BuildRequires: libfmt-devel +BuildRequires: libfontconfig-devel +BuildRequires: libfreetype-devel BuildRequires: libgcc +BuildRequires: libgdal-devel +BuildRequires: libgl2ps-devel +BuildRequires: libglew-devel BuildRequires: libglvnd-devel +BuildRequires: libgomp-devel +BuildRequires: libharu-devel +BuildRequires: libhdf5-devel +BuildRequires: libiodbc-devel +BuildRequires: libjpeg-turbo +BuildRequires: libjsoncpp-devel +BuildRequires: liblas-devel +BuildRequires: liblz4-devel +BuildRequires: liblzma-devel +BuildRequires: libmariadb-devel +BuildRequires: libmpi-devel +BuildRequires: libnetcdf-devel +BuildRequires: libogg-devel +BuildRequires: liboidn-devel +BuildRequires: libopencascade-devel +BuildRequires: libopenvdb-devel +BuildRequires: libopenvr-devel +BuildRequires: libopenxr-devel +BuildRequires: libospray-devel +BuildRequires: libpdal-devel +BuildRequires: libpng-devel +BuildRequires: libpostgresql-devel +BuildRequires: libproj-devel +BuildRequires: libpython3-devel +BuildRequires: libpython311-devel +BuildRequires: librkcommon-devel +BuildRequires: libsqlite-devel BuildRequires: libstdc++6-devel +BuildRequires: libswresample-devel +BuildRequires: libswscale-devel +BuildRequires: libtbb-devel +BuildRequires: libtcl-devel +BuildRequires: libtheora-devel +BuildRequires: libtiff-devel +BuildRequires: libtk-devel +BuildRequires: libverdict-devel +BuildRequires: libxml2-devel +BuildRequires: libz-devel +BuildRequires: libzstd-devel +BuildRequires: pugixml-devel +BuildRequires: qt5-qtdeclarative-devel ## AUTOBUILDREQ-END +BuildRequires: libopencascade >= 7.8.1-2mamba BuildRequires: cmake +BuildRequires: eigen3-devel +BuildRequires: libcli11-devel +BuildRequires: libfast_float-devel +BuildRequires: libutfcpp-devel +BuildRequires: python-mpi4py-py3 Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} %description @@ -28,7 +105,8 @@ The Visualization Toolkit (VTK) is open source software for manipulating and dis %package -n lib%{name} Group: System/Libraries -Summary: Software for manipulating and displaying scientific data +Summary: Libraries for 3D computer graphics, image processing, and visualization +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} %description -n lib%{name} The Visualization Toolkit (VTK) is open source software for manipulating and displaying scientific data. It comes with state-of-the-art tools for 3D rendering, a suite of widgets for 3D interaction, and extensive 2D plotting capability. @@ -45,17 +123,62 @@ This package contains libraries and header files for developing applications tha %debug_package +# Don't clean build at the end +%global __spec_rmbuild_cmd /bin/true + %prep -%setup -q -n VTK-%{version} -#-D -T +%setup -q -n VTK-%{version} -D -T +:<< _EOF +%define _default_patch_fuzz 2 +sed -i "s|3.9.0|%{fastfloatver}|" ThirdParty/fast_float/CMakeLists.txt +#% patch 0 -p1 -b .pdal-2.6.0 +%patch 1 -p1 -b .ospray-3.1.0 +%patch 2 -p1 -b .occt-7.6.3 +%patch 3 -p1 -b .libfmt-11.0.2 +%patch 4 -p1 -b .opencascade-7.8.1 + +%ifarch aarch64 +rm -rf Remote/MomentInvariants* +%endif %build -#:<< _EOF %cmake \ -DCMAKE_INSTALL_LIBDIR=%{_lib} \ -DINCLUDE_INSTALL_DIR=include \ -DCMAKE_C_FLAGS="%{optflags} -fcommon" \ - -DVTK_VERSIONED_INSTALL=OFF + -DCMAKE_PREFIX_PATH=%{_libdir}/cmake/occt/ \ + -DPython3_EXECUTABLE=%{__python3} \ + -DPython3_INCLUDE_DIR=%{python3_inc} \ + -DBUILD_SHARED_LIBS=ON \ + -DVTK_BUILD_ALL_MODULES=ON \ + -DVTK_INSTALL_TCL_DIR=/usr/lib/tcl8.6/vtk/ \ + -DVTK_LEGACY_REMOVE=ON \ + -DVTK_SMP_ENABLE_OPENMP=ON \ + -DVTK_SMP_IMPLEMENTATION_TYPE=TBB \ + -DVTK_PYTHON_VERSION=3 \ + -DVTK_QT_VERSION=5 \ + -DVTK_USE_MPI=ON \ + -DVTK_USE_TK=ON \ + -DVTK_VERSIONED_INSTALL=OFF \ + -DVTK_WRAP_JAVA=ON \ + -DVTK_WRAP_PYTHON=ON \ + -DVTKOSPRAY_ENABLE_DENOISER=ON \ + -DVTKm_ENABLE_HDF5_IO=ON \ + -DVTKm_ENABLE_MPI=ON \ + -DVTKm_ENABLE_OPENMP=ON \ + -DVTK_USE_EXTERNAL=ON \ + -DVTK_MODULE_USE_EXTERNAL_VTK_exprtk=OFF \ + -DVTK_MODULE_USE_EXTERNAL_VTK_ioss=OFF \ + -DVTK_MODULE_USE_EXTERNAL_VTK_pegtl=OFF \ + -DVTK_MODULE_ENABLE_VTK_DomainsMicroscopy=NO \ + -DVTK_MODULE_ENABLE_VTK_FiltersOpenTURNS=NO \ + -DVTK_MODULE_ENABLE_VTK_RenderingZSpace=NO \ +%ifnarch x86_64 + -DVTK_MODULE_ENABLE_VTK_RenderingLookingGlass=NO \ +%endif + -DOpenGL_GL_PREFERENCE=LEGACY \ + -DVTK_IGNORE_CMAKE_CXX11_CHECKS=ON \ + -Wno-dev %cmake_build @@ -63,43 +186,65 @@ This package contains libraries and header files for developing applications tha [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %cmake_install +# Fix location of java files +install -dv %{buildroot}%{_javadir}/vtk +mv %{buildroot}%{_libdir}/java/vtk.jar %{buildroot}%{_javadir}/vtk/ +mv %{buildroot}%{_libdir}/java/vtk-Linux-*/*.so %{buildroot}%{_libdir}/ +rmdir %{buildroot}%{_libdir}/java/{vtk-Linux-*/,} + %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" -%post -n lib%{name} -p /sbin/ldconfig -%postun -n lib%{name} -p /sbin/ldconfig %files -n %{name} %defattr(-,root,root) %{_bindir}/vtk* +%{_bindir}/pvtkpython +%dir %{_datadir}/vr_actions +%{_datadir}/vr_actions/vtk_openvr_*.json +%{_datadir}/vr_actions/vtk_openxr_*.json %dir %{_datadir}/licenses/VTK %{_datadir}/licenses/VTK/* -%dir %{_datadir}/vtk -%dir %{_datadir}/vtk/proj -%{_datadir}/vtk/proj/* %files -n lib%{name} %defattr(-,root,root) %{_libdir}/libvtk*.so.* +%{_libdir}/libvtk*Java.so %dir %{_libdir}/vtk %dir %{_libdir}/vtk/hierarchy %dir %{_libdir}/vtk/hierarchy/VTK %{_libdir}/vtk/hierarchy/VTK/* +%{python3_sitearch}/vtk.py +%dir %{python3_sitearch}/vtkmodules +%{python3_sitearch}/vtkmodules/* +%dir %{_javadir}/vtk +%{_javadir}/vtk/vtk.jar +%dir %{_libdir}/qml/VTK.%{majver} +%{_libdir}/qml/VTK.%{majver}/* %doc Copyright.txt %files -n lib%{name}-devel %defattr(-,root,root) %dir %{_includedir}/vtk %{_includedir}/vtk/* +%dir %{_includedir}/fides +%{_includedir}/fides/* %{_libdir}/libvtk*.so +%exclude %{_libdir}/libvtk*Java.so %dir %{_libdir}/cmake/vtk -%{_libdir}/cmake/vtk/*.cmake -%{_libdir}/cmake/vtk/*.in -%dir %{_libdir}/cmake/vtk/patches -%{_libdir}/cmake/vtk/patches/* +%{_libdir}/cmake/vtk/* %doc README.md %changelog +* Fri Oct 25 2024 Silvan Calarco 9.3.1-2mamba +- rebuilt with libopencascade >= 7.8.1-2mamba + +* Wed Oct 16 2024 Automatic Build System 9.3.1-1mamba +- automatic version update by autodist + +* Sat May 04 2024 Silvan Calarco 9.3.0-2mamba +- rebuilt with more cmake options + * Sat Nov 25 2023 Automatic Build System 9.3.0-1mamba - automatic version update by autodist