diff --git a/.github/workflows/build-linux-debug.yml b/.github/workflows/build-linux-debug.yml index 03240242c1..99e1fa4d93 100644 --- a/.github/workflows/build-linux-debug.yml +++ b/.github/workflows/build-linux-debug.yml @@ -73,7 +73,7 @@ jobs: - name: cmake shell: bash -l {0} - run: conda activate shapeworks && mkdir build && cd build && cmake -DCMAKE_CXX_FLAGS=-g -DITK_DIR=$HOME/install/lib/cmake/ITK-5.3 -DVTK_DIR=$HOME/install/lib/cmake/vtk-9.1 -DXLNT_DIR=$HOME/install -DLIBIGL_DIR=$HOME/install -DOpenVDB_DIR=$HOME/install/lib/cmake/OpenVDB -DGEOMETRYCENTRAL_DIR=$HOME/install -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBuild_Studio=ON -DJKQTCommonSharedLib_DIR=$HOME/install/lib/cmake/JKQTCommonSharedLib -DJKQTMathTextSharedLib_DIR=$HOME/install/lib/cmake/JKQTMathTextSharedLib -DJKQTPlotterSharedLib_DIR=$HOME/install/lib/cmake/JKQTPlotterSharedLib -DACVD_DIR=$HOME/install -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/shapeworks-install -DUSE_ORIGIN_RPATH=ON .. + run: conda activate shapeworks && mkdir build && cd build && cmake -DCMAKE_CXX_FLAGS=-g -DITK_DIR=$HOME/install/lib/cmake/ITK-5.3 -DVTK_DIR=$HOME/install/lib/cmake/vtk-9.5 -DXLNT_DIR=$HOME/install -DLIBIGL_DIR=$HOME/install -DOpenVDB_DIR=$HOME/install/lib/cmake/OpenVDB -DGEOMETRYCENTRAL_DIR=$HOME/install -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBuild_Studio=ON -DJKQTCommonSharedLib_DIR=$HOME/install/lib/cmake/JKQTCommonSharedLib -DJKQTMathTextSharedLib_DIR=$HOME/install/lib/cmake/JKQTMathTextSharedLib -DJKQTPlotterSharedLib_DIR=$HOME/install/lib/cmake/JKQTPlotterSharedLib -DACVD_DIR=$HOME/install -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/shapeworks-install -DUSE_ORIGIN_RPATH=ON .. - name: Check space6 run: df -h diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 2032e57082..060aa835cc 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -72,7 +72,7 @@ jobs: - name: cmake shell: bash -l {0} - run: conda activate shapeworks && mkdir build && cd build && cmake -DCMAKE_CXX_FLAGS=-g -DITK_DIR=$HOME/install/lib/cmake/ITK-5.3 -DVTK_DIR=$HOME/install/lib/cmake/vtk-9.1 -DXLNT_DIR=$HOME/install -DLIBIGL_DIR=$HOME/install -DOpenVDB_DIR=$HOME/install/lib/cmake/OpenVDB -DGEOMETRYCENTRAL_DIR=$HOME/install -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBuild_Studio=ON -DJKQTCommonSharedLib_DIR=$HOME/install/lib/cmake/JKQTCommonSharedLib -DJKQTMathTextSharedLib_DIR=$HOME/install/lib/cmake/JKQTMathTextSharedLib -DJKQTPlotterSharedLib_DIR=$HOME/install/lib/cmake/JKQTPlotterSharedLib -DACVD_DIR=$HOME/install -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/shapeworks-install -DUSE_ORIGIN_RPATH=ON -DGA_MEASUREMENT_ID=$GA_MEASUREMENT_ID -DGA_API_SECRET=$GA_API_SECRET .. + run: conda activate shapeworks && mkdir build && cd build && cmake -DCMAKE_CXX_FLAGS=-g -DITK_DIR=$HOME/install/lib/cmake/ITK-5.3 -DVTK_DIR=$HOME/install/lib/cmake/vtk-9.5 -DXLNT_DIR=$HOME/install -DLIBIGL_DIR=$HOME/install -DOpenVDB_DIR=$HOME/install/lib/cmake/OpenVDB -DGEOMETRYCENTRAL_DIR=$HOME/install -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBuild_Studio=ON -DJKQTCommonSharedLib_DIR=$HOME/install/lib/cmake/JKQTCommonSharedLib -DJKQTMathTextSharedLib_DIR=$HOME/install/lib/cmake/JKQTMathTextSharedLib -DJKQTPlotterSharedLib_DIR=$HOME/install/lib/cmake/JKQTPlotterSharedLib -DACVD_DIR=$HOME/install -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/shapeworks-install -DUSE_ORIGIN_RPATH=ON -DGA_MEASUREMENT_ID=$GA_MEASUREMENT_ID -DGA_API_SECRET=$GA_API_SECRET .. - name: Check space5 run: df -h diff --git a/.github/workflows/build-mac-arm64.yml b/.github/workflows/build-mac-arm64.yml index 15604ff5d1..0a52c34170 100644 --- a/.github/workflows/build-mac-arm64.yml +++ b/.github/workflows/build-mac-arm64.yml @@ -56,7 +56,7 @@ jobs: - name: cmake shell: bash -l {0} - run: conda activate shapeworks && mkdir build && cd build && cmake -DCMAKE_LIBTOOL=/usr/bin/libtool -DCMAKE_CXX_FLAGS=-g -DCMAKE_PREFIX_PATH=$HOME/install -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DPython3_ROOT_DIR:FILEPATH=${CONDA_PREFIX} -DUSE_OPENMP=OFF -DBuild_Studio=ON -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/shapeworks-install -DBUILD_DOCUMENTATION=ON -DGA_MEASUREMENT_ID=$GA_MEASUREMENT_ID -DGA_API_SECRET=$GA_API_SECRET .. + run: conda activate shapeworks && mkdir build && cd build && cmake -DCMAKE_LIBTOOL=/usr/bin/libtool -DCMAKE_CXX_FLAGS="-g -Wno-enum-constexpr-conversion" -DCMAKE_PREFIX_PATH=$HOME/install -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DPython3_ROOT_DIR:FILEPATH=${CONDA_PREFIX} -DUSE_OPENMP=OFF -DBuild_Studio=ON -DCMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/shapeworks-install -DBUILD_DOCUMENTATION=ON -DGA_MEASUREMENT_ID=$GA_MEASUREMENT_ID -DGA_API_SECRET=$GA_API_SECRET .. - name: make shell: bash -l {0} diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 9df4c513e7..513dfaba28 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -109,7 +109,7 @@ jobs: # Note the current convention is to use the -S and -B options here to specify source # and build directories, but this is only available with CMake 3.13 and higher. # The CMake binaries on the Github Actions machines are (as of this writing) 3.12 - run: conda activate shapeworks && cmake $GITHUB_WORKSPACE -DCMAKE_CXX_FLAGS="-FS" -DCMAKE_C_FLAGS="-FS" -DCMAKE_CXX_FLAGS_RELEASE="-FS /Zm500 /Zi /GL /MD /O2 /Ob3 /DNDEBUG /EHsc" -DCMAKE_C_FLAGS_RELEASE="-FS /Zi /GL /MD /O2 /Ob3 /DNDEBUG /EHsc" -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-LTCG /DEBUG" -DCMAKE_EXE_LINKER_FLAGS_RELEASE="-LTCG /DEBUG" -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DITK_DIR="C:\deps\lib\cmake\ITK-5.3" -DVTK_DIR="C:\deps\lib\cmake\vtk-9.1" -DXLNT_DIR="C:\deps" -DLIBIGL_DIR="C:\deps" -DJKQTCommonSharedLib_DIR="C:/deps/lib/cmake/JKQTCommonSharedLib" -DJKQTMathTextSharedLib_DIR="C:/deps/lib/cmake/JKQTMathTextSharedLib" -DJKQTPlotterSharedLib_DIR="C:/deps/lib/cmake/JKQTPlotterSharedLib" -DOpenVDB_DIR="C:\deps\lib\cmake\OpenVDB" -DGEOMETRYCENTRAL_DIR="C:\deps" -DACVD_DIR="C:\deps" -DBuild_Studio=ON -DGA_MEASUREMENT_ID=$GA_MEASUREMENT_ID -DGA_API_SECRET=$GA_API_SECRET + run: conda activate shapeworks && cmake $GITHUB_WORKSPACE -DCMAKE_CXX_FLAGS="-FS" -DCMAKE_C_FLAGS="-FS" -DCMAKE_CXX_FLAGS_RELEASE="-FS /Zm500 /Zi /GL /MD /O2 /Ob3 /DNDEBUG /EHsc" -DCMAKE_C_FLAGS_RELEASE="-FS /Zi /GL /MD /O2 /Ob3 /DNDEBUG /EHsc" -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-LTCG /DEBUG" -DCMAKE_EXE_LINKER_FLAGS_RELEASE="-LTCG /DEBUG" -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DITK_DIR="C:\deps\lib\cmake\ITK-5.3" -DVTK_DIR="C:\deps\lib\cmake\vtk-9.5" -DXLNT_DIR="C:\deps" -DLIBIGL_DIR="C:\deps" -DJKQTCommonSharedLib_DIR="C:/deps/lib/cmake/JKQTCommonSharedLib" -DJKQTMathTextSharedLib_DIR="C:/deps/lib/cmake/JKQTMathTextSharedLib" -DJKQTPlotterSharedLib_DIR="C:/deps/lib/cmake/JKQTPlotterSharedLib" -DOpenVDB_DIR="C:\deps\lib\cmake\OpenVDB" -DGEOMETRYCENTRAL_DIR="C:\deps" -DACVD_DIR="C:\deps" -DBuild_Studio=ON -DGA_MEASUREMENT_ID=$GA_MEASUREMENT_ID -DGA_API_SECRET=$GA_API_SECRET - name: Build working-directory: "C:/build" diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f2cfc2d1c..5486663d8a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,7 +42,7 @@ project(ShapeWorks) ### vtk -find_package(VTK 9.1.0) +find_package(VTK 9.5.0) if (NOT VTK_FOUND) message(FATAL_ERROR "VTK is required, but could not be found! Make sure path to VTKConfig.cmake is included in CMAKE_PREFIX_PATH") endif() diff --git a/Libs/Application/DeepSSM/DeepSSMJob.h b/Libs/Application/DeepSSM/DeepSSMJob.h index f3c26dbcb9..d7bfe2025f 100644 --- a/Libs/Application/DeepSSM/DeepSSMJob.h +++ b/Libs/Application/DeepSSM/DeepSSMJob.h @@ -1,5 +1,6 @@ #pragma once +#include #include #include diff --git a/Studio/Visualization/ColorMap.cpp b/Studio/Visualization/ColorMap.cpp index d3421d7de6..42b4bd1451 100644 --- a/Studio/Visualization/ColorMap.cpp +++ b/Studio/Visualization/ColorMap.cpp @@ -71,7 +71,7 @@ ColorMaps::ColorMaps() { colorSeries->SetColorScheme(colorSeriesEnum); ColorMap map; map.color_series_ = colorSeries; - map.name_ = colorSeries->GetColorSchemeName(); + map.name_ = QString::fromStdString(colorSeries->GetColorSchemeName()); push_back(map); }; diff --git a/Support/openvdb-9.1.0.patch b/Support/openvdb-9.1.0.patch new file mode 100644 index 0000000000..628f5bd43f --- /dev/null +++ b/Support/openvdb-9.1.0.patch @@ -0,0 +1,31 @@ +diff --git a/openvdb/openvdb/tree/NodeManager.h b/openvdb/openvdb/tree/NodeManager.h +index 4d0d9b46..12dabaaa 100644 +--- a/openvdb/openvdb/tree/NodeManager.h ++++ b/openvdb/openvdb/tree/NodeManager.h +@@ -327,7 +327,7 @@ private: + void operator()(const NodeRange& range) const + { + for (typename NodeRange::Iterator it = range.begin(); it; ++it) { +- OpT::template eval(mNodeOp, it); ++ OpT::eval(mNodeOp, it); + } + } + const NodeOp mNodeOp; +@@ -347,7 +347,7 @@ private: + void operator()(const NodeRange& range) const + { + for (typename NodeRange::Iterator it = range.begin(); it; ++it) { +- OpT::template eval(mNodeOp, it); ++ OpT::eval(mNodeOp, it); + } + } + const NodeOp& mNodeOp; +@@ -372,7 +372,7 @@ private: + void operator()(const NodeRange& range) + { + for (typename NodeRange::Iterator it = range.begin(); it; ++it) { +- OpT::template eval(*mNodeOp, it); ++ OpT::eval(*mNodeOp, it); + } + } + void join(const NodeReducer& other) diff --git a/Testing/OptimizeTests/OptimizeTests.cpp b/Testing/OptimizeTests/OptimizeTests.cpp index c204bee16d..be7357c670 100644 --- a/Testing/OptimizeTests/OptimizeTests.cpp +++ b/Testing/OptimizeTests/OptimizeTests.cpp @@ -476,7 +476,7 @@ TEST(OptimizeTests, procrustes_scale_only_test) { std::cerr << "Eigenvalue " << i << " : " << values[i] << "\n"; } ASSERT_GT(values[values.size() - 1], 275.0); - ASSERT_LT(values[values.size() - 1], 365.0); + ASSERT_LT(values[values.size() - 1], 380.0); } // TODO Move this to mesh tests? diff --git a/Testing/data/reconstruct_mean_surface.vtk b/Testing/data/reconstruct_mean_surface.vtk index 8422cd9b1d..d015f4eac7 100644 --- a/Testing/data/reconstruct_mean_surface.vtk +++ b/Testing/data/reconstruct_mean_surface.vtk @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7fb708391e9b451a418478721ad5ba38cd0c9561383f3748e8ca71f2695781fd +oid sha256:5e7fb2d2dae972c9ba2070a8498af279269d9780af0cc238b5968993b778bcd4 size 246231 diff --git a/Testing/data/shapeworksTests/analyze/analysis_baseline.json b/Testing/data/shapeworksTests/analyze/analysis_baseline.json index 29f4441371..d0d94102e2 100644 --- a/Testing/data/shapeworksTests/analyze/analysis_baseline.json +++ b/Testing/data/shapeworksTests/analyze/analysis_baseline.json @@ -1288,70 +1288,70 @@ "groups": [], "good_bad_angles": [ [ - 9.82, + 9.84, 4.17, - 4.05, - 10.88, - 6.44, - 7.45, - 9.12, - 8.36, - 4.92, - 10.55, - 6.25, - 4.64, - 9.74, - 7.68, - 7.55, - 7.95, - 8.99, - 3.93, - 13.49, + 4.07, + 10.96, + 6.45, + 7.3, + 9.21, + 8.39, + 4.97, + 10.62, + 6.31, + 4.74, + 9.99, + 7.71, + 7.57, + 8.0, 9.03, + 4.13, + 13.58, + 9.14, 3.43, - 8.82, + 9.26, 5.16, - 9.64, - 4.23, - 8.75, + 9.76, + 4.21, + 8.78, 4.56, - 9.06, - 7.46, - 6.54, - 9.9, - 7.1, - 11.12, - 8.98, - 7.54, - 9.38, + 9.1, + 7.51, + 6.63, + 9.97, + 7.11, + 11.15, + 9.11, + 7.6, + 9.48, 5.1, - 12.96, - 9.62, - 5.93, - 8.02, - 7.88, - 12.76, - 6.93, - 9.02, - 3.93, - 11.97, - 5.77, + 17.11, + 9.64, + 5.94, + 8.06, + 7.9, + 12.86, + 7.06, + 9.07, + 3.91, + 12.09, + 5.81, 11.3, - 12.89, - 15.77, - 12.05, - 6.33, - 12.58, - 5.36, - 11.36, - 5.86, - 6.08, - 8.86, - 6.23, - 6.26, - 4.86, - 8.64, - 8.76 + 12.96, + 15.91, + 12.14, + 6.36, + 12.83, + 5.32, + 11.5, + 5.84, + 6.2, + 8.91, + 6.27, + 6.43, + 4.98, + 9.04, + 8.81 ] ] } \ No newline at end of file diff --git a/Testing/data/shapeworksTests/analyze/analyze.sh b/Testing/data/shapeworksTests/analyze/analyze.sh index 313d919bd0..c50abd98d4 100755 --- a/Testing/data/shapeworksTests/analyze/analyze.sh +++ b/Testing/data/shapeworksTests/analyze/analyze.sh @@ -2,6 +2,8 @@ shapeworks analyze --name ellipsoid.swproj --output analysis_output.json if [[ $? != 0 ]]; then exit -1; fi + +echo "Comparing analysis output" diff analysis_output.json analysis_baseline.json if [[ $? != 0 ]]; then exit -1; fi diff --git a/Testing/data/smoothsinc.vtp b/Testing/data/smoothsinc.vtp index 653a8fc4a5..790853884f 100644 --- a/Testing/data/smoothsinc.vtp +++ b/Testing/data/smoothsinc.vtp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:926240f836f798e83910b8090a20ed376f9cf879d71a53c7856ac2d2f202a8ee -size 2697801 +oid sha256:ca7aa53ca7ee84b523ff66bdd5b89827254279026070a95e36ec4edd473a0ad2 +size 7299939 diff --git a/build_dependencies.sh b/build_dependencies.sh index caa23ec0b3..226ae8ab12 100755 --- a/build_dependencies.sh +++ b/build_dependencies.sh @@ -20,8 +20,8 @@ BUILD_STUDIO=0 BUILD_SHAPEWORKS=1 BUILD_TYPE="Release" BUILD_LOG="build_dependencies.log" -VTK_VER="v9.1.0" -VTK_VER_STR="9.1" +VTK_VER="v9.5.0" +VTK_VER_STR="9.5" ITK_VER="v5.3.0" ITK_VER_STR="5.3" QT_MIN_VER="5.15.4" @@ -162,6 +162,15 @@ build_itk() cd ITK git checkout -f tags/${ITK_VER} + # replace with in Modules/ThirdParty/PNG/src/itkpng/pngpriv.h + if [ "$(uname)" == "Darwin" ]; then + # macOS requires an extension for -i + sed -i '' 's|||g' Modules/ThirdParty/PNG/src/itkpng/pngpriv.h + else + # Linux/GitHub Actions doesn't need an extension + sed -i 's|||g' Modules/ThirdParty/PNG/src/itkpng/pngpriv.h + fi + if [[ $BUILD_CLEAN = 1 ]]; then rm -rf build; fi mkdir -p build && cd build @@ -251,6 +260,9 @@ build_openvdb() cd openvdb git checkout ${OpenVDB_VER} + # patch for Clang 17 + patch -p1 < ${SCRIPT_DIR}/Support/openvdb-9.1.0.patch + if [[ $BUILD_CLEAN = 1 ]]; then rm -rf build; fi mkdir -p build && cd build @@ -264,7 +276,7 @@ build_openvdb() cmake -DCMAKE_CXX_FLAGS="$FLAGS" -DUSE_BLOSC=OFF ${CONCURRENT_FLAG} -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_INSTALL_LIBDIR=lib -DOPENVDB_CORE_STATIC=OFF -DUSE_EXPLICIT_INSTANTIATION=OFF -DOPENVDB_BUILD_BINARIES=OFF -DCMAKE_BUILD_TYPE=${BUILD_TYPE} .. make -j${NUM_PROCS} install || exit 1 else - cmake -DCMAKE_CXX_FLAGS="$FLAGS" -DUSE_BLOSC=OFF ${CONCURRENT_FLAG} -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_INSTALL_LIBDIR=lib -DOPENVDB_CORE_STATIC=OFF -DOPENVDB_BUILD_BINARIES=OFF -DCMAKE_BUILD_TYPE=${BUILD_TYPE} .. + cmake -DCMAKE_CXX_FLAGS="$FLAGS -Wno-enum-constexpr-conversion" -DUSE_BLOSC=OFF ${CONCURRENT_FLAG} -DCMAKE_PREFIX_PATH=${CONDA_PREFIX} -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_INSTALL_LIBDIR=lib -DOPENVDB_CORE_STATIC=OFF -DOPENVDB_BUILD_BINARIES=OFF -DCMAKE_BUILD_TYPE=${BUILD_TYPE} .. make -j${NUM_PROCS} install || exit 1 fi