git: 7837c037db78 - main - misc/visp: fix build with opencv 4.9

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Thu, 05 Jun 2025 18:27:47 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=7837c037db78d26b435b5a35db9c7ebb4da6275a

commit 7837c037db78d26b435b5a35db9c7ebb4da6275a
Author:     Edward.Sanford.Sutton, III <mirror176@hotmail.com>
AuthorDate: 2025-06-05 15:11:33 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2025-06-05 18:27:33 +0000

    misc/visp: fix build with opencv 4.9
    
    PR:             287320
    <If and which Problem Report is related.>
---
 ...s_tracker_mbt_src_depth_vpMbtFaceDepthDense.cpp | 31 ++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/misc/visp/files/patch-modules_tracker_mbt_src_depth_vpMbtFaceDepthDense.cpp b/misc/visp/files/patch-modules_tracker_mbt_src_depth_vpMbtFaceDepthDense.cpp
new file mode 100644
index 000000000000..38198d2375fb
--- /dev/null
+++ b/misc/visp/files/patch-modules_tracker_mbt_src_depth_vpMbtFaceDepthDense.cpp
@@ -0,0 +1,31 @@
+--- modules/tracker/mbt/src/depth/vpMbtFaceDepthDense.cpp.orig	2023-09-22 05:39:36 UTC
++++ modules/tracker/mbt/src/depth/vpMbtFaceDepthDense.cpp
+@@ -518,9 +518,15 @@ void vpMbtFaceDepthDense::computeInteractionMatrixAndR
+         cv::v_float64x2 vx, vy, vz;
+         cv::v_load_deinterleave(ptr_point_cloud, vx, vy, vz);
+ 
++#if (VISP_HAVE_OPENCV_VERSION >= 0x040900)
++        cv::v_float64x2 va1 = cv::v_sub(cv::v_mul(vnz, vy), cv::v_mul(vny, vz)); // vnz*vy - vny*vz
++        cv::v_float64x2 va2 = cv::v_sub(cv::v_mul(vnx, vz), cv::v_mul(vnz, vx)); // vnx*vz - vnz*vx
++        cv::v_float64x2 va3 = cv::v_sub(cv::v_mul(vny, vx), cv::v_mul(vnx, vy)); // vny*vx - vnx*vy
++#else
+         cv::v_float64x2 va1 = vnz*vy - vny*vz;
+         cv::v_float64x2 va2 = vnx*vz - vnz*vx;
+         cv::v_float64x2 va3 = vny*vx - vnx*vy;
++#endif
+ 
+         cv::v_float64x2 vnxy = cv::v_combine_low(vnx, vny);
+         cv::v_store(ptr_L, vnxy);
+@@ -542,7 +548,12 @@ void vpMbtFaceDepthDense::computeInteractionMatrixAndR
+         cv::v_store(ptr_L, vnxy);
+         ptr_L += 2;
+ 
++#if (VISP_HAVE_OPENCV_VERSION >= 0x040900)
++        cv::v_float64x2 verr = cv::v_add(vd, cv::v_muladd(vnx, vx, cv::v_muladd(vny, vy, cv::v_mul(vnz, vz))));
++#else
+         cv::v_float64x2 verr = vd + cv::v_muladd(vnx, vx, cv::v_muladd(vny, vy, vnz*vz));
++#endif
++
+         cv::v_store(ptr_error, verr);
+         ptr_error += 2;
+ #elif USE_SSE