From 24208b4daa66010d62f0f502e6e694c89df1e427 Mon Sep 17 00:00:00 2001 From: Filip Sykala Date: Mon, 19 Apr 2021 14:19:18 +0200 Subject: [PATCH] Fix. Now correct check when 2 vector have same direction --- src/libslic3r/SLA/SupportIslands/PointUtils.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/SLA/SupportIslands/PointUtils.cpp b/src/libslic3r/SLA/SupportIslands/PointUtils.cpp index 49b3b87e53..1e828eda14 100644 --- a/src/libslic3r/SLA/SupportIslands/PointUtils.cpp +++ b/src/libslic3r/SLA/SupportIslands/PointUtils.cpp @@ -23,6 +23,18 @@ Slic3r::Point PointUtils::perp(const Point &vector) bool PointUtils::is_same_direction(const Point &dir1, const Point &dir2) { - return (is_majorit_x(dir1)) ? (dir1.x() > 0) == (dir2.x() > 0) : - (dir1.y() > 0) == (dir2.y() > 0); + // (is_majorit_x(dir1)) ? (dir1.x() > 0) == (dir2.x() > 0) : + // (dir1.y() > 0) == (dir2.y() > 0); + // Cant use majorit direction: + // [2] 750000 544907 + // [2] 463525 -1426583 + // !! bad idea + + // Cant use dot product for int value ==> dir1.dot(dir2) + // diferent int result for input + //[2] - 128707028 93448506 + //[2] 10475487 1662574 + // may be overflow ?? + + return dir1.cast().dot(dir2.cast()) > 0; }