Fix. Now correct check when 2 vector have same direction

This commit is contained in:
Filip Sykala 2021-04-19 14:19:18 +02:00 committed by Lukas Matena
parent d6616be202
commit 24208b4daa

View File

@ -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<float>().dot(dir2.cast<float>()) > 0;
}