[dv-processing] Update to 2.0.3 (#52575)

This commit is contained in:
SunBlack 2026-06-24 23:11:40 +02:00 committed by GitHub
parent ba91fd5468
commit 297a609f74
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 64 additions and 160 deletions

View File

@ -1,99 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b67acfc1..1c51931f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -156,7 +156,10 @@ IF(OS_WINDOWS)
ENDIF()
# Eigen support.
-FIND_PACKAGE(Eigen3 3.4.0 REQUIRED)
+FIND_PACKAGE(Eigen3 REQUIRED)
+IF(Eigen3_VERSION VERSION_LESS "3.4.0")
+ MESSAGE(FATAL_ERROR "Cannot find Eigen3 3.4.0 or newer.")
+ENDIF()
# OpenCV support.
FIND_PACKAGE(OpenCV REQUIRED)
diff --git a/benchmarks/cluster/mean-shift-alternatives.hpp b/benchmarks/cluster/mean-shift-alternatives.hpp
index a7c572ff..e2aab920 100644
--- a/benchmarks/cluster/mean-shift-alternatives.hpp
+++ b/benchmarks/cluster/mean-shift-alternatives.hpp
@@ -40,12 +40,6 @@ public:
using VectorOfVectors = std::vector<Vector, Eigen::aligned_allocator<Vector>>;
private:
- static_assert(EIGEN_IMPLIES(ROWS == 1 && COLUMNS != 1, STORAGE_ORDER == Eigen::RowMajor)
- && "Eigen doesn't allow row-vectors to be stored in column-major storage");
-
- static_assert(EIGEN_IMPLIES(COLUMNS == 1 && ROWS != 1, STORAGE_ORDER == Eigen::ColMajor)
- && "Eigen doesn't allow column-vectors to be stored in row-major storage");
-
const uint64_t mNumSamples;
const uint16_t mNumDimensions;
@@ -322,12 +316,6 @@ public:
using VectorOfVectors = std::vector<Vector, Eigen::aligned_allocator<Vector>>;
private:
- static_assert(EIGEN_IMPLIES(ROWS == 1 && COLUMNS != 1, STORAGE_ORDER == Eigen::RowMajor)
- && "Eigen doesn't allow row-vectors to be stored in column-major storage");
-
- static_assert(EIGEN_IMPLIES(COLUMNS == 1 && ROWS != 1, STORAGE_ORDER == Eigen::ColMajor)
- && "Eigen doesn't allow column-vectors to be stored in row-major storage");
-
using RTree = boost::geometry::index::rtree<Mat, boost::geometry::index::linear<16>>;
const uint64_t mNumSamples;
diff --git a/cmake/dv-processing-config.cmake.in b/cmake/dv-processing-config.cmake.in
index 9692b181..03e00602 100644
--- a/cmake/dv-processing-config.cmake.in
+++ b/cmake/dv-processing-config.cmake.in
@@ -35,7 +35,10 @@ FIND_PACKAGE(Boost 1.80 REQUIRED COMPONENTS nowide)
FIND_PACKAGE(OpenSSL REQUIRED)
# Eigen support.
-FIND_PACKAGE(Eigen3 3.4.0 REQUIRED)
+FIND_PACKAGE(Eigen3 REQUIRED)
+IF (Eigen3_VERSION VERSION_LESS "3.4.0")
+ MESSAGE(FATAL_ERROR "Cannot find Eigen3 3.4.0 or newer.")
+ENDIF ()
# OpenCV support.
FIND_PACKAGE(OpenCV REQUIRED)
diff --git a/include/dv-processing/containers/kd_tree/eigen_matrix_adaptor.hpp b/include/dv-processing/containers/kd_tree/eigen_matrix_adaptor.hpp
index c23c2aeb..d0b180d7 100644
--- a/include/dv-processing/containers/kd_tree/eigen_matrix_adaptor.hpp
+++ b/include/dv-processing/containers/kd_tree/eigen_matrix_adaptor.hpp
@@ -103,14 +103,7 @@ private:
using Tree = nanoflann::KDTreeEigenMatrixAdaptor<Matrix, SAMPLE_ORDER == Eigen::ColMajor ? ROWS : COLUMNS,
nanoflann::metric_L2_Simple, SAMPLE_ORDER == Eigen::RowMajor>;
- static_assert(EIGEN_IMPLIES(ROWS == 1 && COLUMNS != 1, STORAGE_ORDER == Eigen::RowMajor)
- && "Eigen doesn't allow row-vectors to be stored in column-major storage");
-
- static_assert(EIGEN_IMPLIES(COLUMNS == 1 && ROWS != 1, STORAGE_ORDER == Eigen::ColMajor)
- && "Eigen doesn't allow column-vectors to be stored in row-major storage");
-
const uint32_t mNumSamples;
-
const uint32_t mNumDimensions;
std::unique_ptr<Tree> mTree;
diff --git a/include/dv-processing/visualization/pose_visualizer.hpp b/include/dv-processing/visualization/pose_visualizer.hpp
index 11b18ba9..2fa6b398 100644
--- a/include/dv-processing/visualization/pose_visualizer.hpp
+++ b/include/dv-processing/visualization/pose_visualizer.hpp
@@ -456,8 +456,12 @@ public:
*/
template<concepts::Coordinate3DConstructible Output = Eigen::Vector3f>
[[nodiscard]] Output getCameraOrientation() const {
+#if EIGEN_MAJOR_VERSION < 5
Eigen::Vector3f eulerAngles = mT_C_W.inverse().getRotationMatrix().eulerAngles(0, 1, 2);
- eulerAngles = eulerAngles * RAD_TO_DEG;
+#else
+ Eigen::Vector3f eulerAngles = mT_C_W.inverse().getRotationMatrix().canonicalEulerAngles(0, 1, 2);
+#endif
+ eulerAngles = eulerAngles * RAD_TO_DEG;
return Output(eulerAngles.x(), eulerAngles.y(), eulerAngles.z());
}

View File

@ -1,59 +1,57 @@
vcpkg_from_gitlab(
GITLAB_URL https://gitlab.com/inivation
OUT_SOURCE_PATH SOURCE_PATH
REPO dv/dv-processing
REF "${VERSION}"
SHA512 535680686214d9d44efa8281d9b7cb424e93a662b0742f02a07616ca6b1d313779f03845489059b082481aafd9a83eca20f5315a4b5319e8dc956a15ca790afa
HEAD_REF master
PATCHES
0001-support-eigen3-5.patch
)
vcpkg_from_gitlab(
GITLAB_URL https://gitlab.com/inivation
OUT_SOURCE_PATH CMAKEMOD_SOURCE_PATH
REPO dv/cmakemod
REF d107c76b73a49a16c3ac733749152037406a515e
SHA512 fe87530ce5fecfe5d1ccdc6a06addc652167c67c4707d9039bf2f022ced2966dc8295b8ed69c3d4154b965f0dd22f43a8830eb4f03e99ff3edfe38de759bd0d5
HEAD_REF d107c76b73a49a16c3ac733749152037406a515e
)
file(GLOB CMAKEMOD_FILES "${CMAKEMOD_SOURCE_PATH}/*")
file(COPY ${CMAKEMOD_FILES} DESTINATION "${SOURCE_PATH}/cmake/modules")
vcpkg_check_features(
OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
tools DVP_ENABLE_UTILITIES
)
vcpkg_find_acquire_program(PKGCONFIG)
set(VCPKG_BUILD_TYPE release) # no lib binaries
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
DISABLE_PARALLEL_CONFIGURE # writes to include/dv-processing/version.hpp
OPTIONS
"-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
${FEATURE_OPTIONS}
-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
-DCMAKE_REQUIRE_FIND_PACKAGE_lz4=ON
-DCMAKE_REQUIRE_FIND_PACKAGE_zstd=ON
-DDVP_ENABLE_TESTS=OFF
-DDVP_ENABLE_SAMPLES=OFF
-DDVP_ENABLE_PYTHON=OFF
-DDVP_ENABLE_BENCHMARKS=OFF
-DDVP_BUILD_CONFIG_VCPKG=ON
)
vcpkg_cmake_install()
if(DVP_ENABLE_UTILITIES)
vcpkg_copy_tools(TOOL_NAMES dv-filestat dv-imu-bias-estimation dv-list-devices dv-tcpstat AUTO_CLEAN)
endif()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # pkgconfig only, but incomplete
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
vcpkg_from_gitlab(
GITLAB_URL https://gitlab.com/inivation
OUT_SOURCE_PATH SOURCE_PATH
REPO dv/dv-processing
REF "${VERSION}"
SHA512 b53d59120b65aee8cfa8a524a5b9779c55687c649d847e20f344b246dd800aa639a31fe12e2f1cd810f38db743ec8051b9f6fbe895486e318942b86daab114c2
HEAD_REF master
)
vcpkg_from_gitlab(
GITLAB_URL https://gitlab.com/inivation
OUT_SOURCE_PATH CMAKEMOD_SOURCE_PATH
REPO dv/cmakemod
REF d107c76b73a49a16c3ac733749152037406a515e
SHA512 fe87530ce5fecfe5d1ccdc6a06addc652167c67c4707d9039bf2f022ced2966dc8295b8ed69c3d4154b965f0dd22f43a8830eb4f03e99ff3edfe38de759bd0d5
HEAD_REF d107c76b73a49a16c3ac733749152037406a515e
)
file(GLOB CMAKEMOD_FILES "${CMAKEMOD_SOURCE_PATH}/*")
file(COPY ${CMAKEMOD_FILES} DESTINATION "${SOURCE_PATH}/cmake/modules")
vcpkg_check_features(
OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
tools DVP_ENABLE_UTILITIES
)
vcpkg_find_acquire_program(PKGCONFIG)
set(VCPKG_BUILD_TYPE release) # no lib binaries
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
DISABLE_PARALLEL_CONFIGURE # writes to include/dv-processing/version.hpp
OPTIONS
"-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
${FEATURE_OPTIONS}
-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
-DCMAKE_REQUIRE_FIND_PACKAGE_lz4=ON
-DCMAKE_REQUIRE_FIND_PACKAGE_zstd=ON
-DDVP_ENABLE_TESTS=OFF
-DDVP_ENABLE_SAMPLES=OFF
-DDVP_ENABLE_PYTHON=OFF
-DDVP_ENABLE_BENCHMARKS=OFF
-DDVP_BUILD_CONFIG_VCPKG=ON
)
vcpkg_cmake_install()
if(DVP_ENABLE_UTILITIES)
vcpkg_copy_tools(TOOL_NAMES dv-filestat dv-imu-bias-estimation dv-list-devices dv-tcpstat AUTO_CLEAN)
endif()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # pkgconfig only, but incomplete
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")

View File

@ -1,6 +1,6 @@
{
"name": "dv-processing",
"version": "2.0.2",
"version": "2.0.3",
"description": "Generic algorithms for event cameras. (C++20 required.)",
"homepage": "https://gitlab.com/inivation/dv/dv-processing",
"license": "Apache-2.0",

View File

@ -2673,7 +2673,7 @@
"port-version": 0
},
"dv-processing": {
"baseline": "2.0.2",
"baseline": "2.0.3",
"port-version": 0
},
"dx": {

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "16eecab93455e6de3efa389ed7df98062bdb3993",
"version": "2.0.3",
"port-version": 0
},
{
"git-tree": "7905ca395b38c29b5d1e05d14bacd4266b542a96",
"version": "2.0.2",