From a636243ec03f60effbf79efdae5e0aa9ed197592 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Wed, 24 Jun 2026 00:36:41 -0300 Subject: [PATCH] fix: materialize Eigen cast expression before passing to distance_to_squared Eigen's .cast() returns a lazy CwiseUnaryOp expression, not a materialized Matrix. The distance_to_squared overload taking a nearest_point output parameter expects a concrete Eigen::Matrix, so template deduction fails on clang-cl. Materialize the cast into a local Vec variable before passing it. MSVC accepted the expression directly; clang-cl correctly rejects it. --- src/libslic3r/AABBTreeLines.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/AABBTreeLines.hpp b/src/libslic3r/AABBTreeLines.hpp index 97ad1bdf44..b13fe03401 100644 --- a/src/libslic3r/AABBTreeLines.hpp +++ b/src/libslic3r/AABBTreeLines.hpp @@ -32,7 +32,8 @@ namespace AABBTreeLines { { Vec nearest_point; const LineType& line = lines[primitive_index]; - squared_distance = line_alg::distance_to_squared(line, origin.template cast(), &nearest_point); + const Vec origin_cast = origin.template cast(); + squared_distance = line_alg::distance_to_squared(line, origin_cast, &nearest_point); return nearest_point.template cast(); } };