mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-12 18:09:00 +08:00
Fix int32 overflow.
This commit is contained in:
parent
0fa7738d6a
commit
974bfbdfbd
@ -259,13 +259,9 @@ double LineUtils::perp_distance(const Linef &line, Vec2d p)
|
||||
|
||||
bool LineUtils::is_parallel(const Line &first, const Line &second)
|
||||
{
|
||||
Point dir1 = direction(first);
|
||||
Point dir2 = direction(second);
|
||||
coord_t cross(
|
||||
static_cast<int64_t>(dir1.x()) * dir2.y() -
|
||||
static_cast<int64_t>(dir2.x()) * dir1.y()
|
||||
);
|
||||
return (cross == 0);
|
||||
Vec2i64 dir1 = direction(first).cast<int64_t>();
|
||||
Vec2i64 dir2 = direction(second).cast<int64_t>();
|
||||
return Slic3r::cross2(dir1, dir2) == 0;
|
||||
}
|
||||
|
||||
std::optional<Slic3r::Vec2d> LineUtils::intersection(const Line &ray1, const Line &ray2)
|
||||
|
@ -67,11 +67,11 @@ double ParabolaUtils::focal_length(const Parabola ¶bola)
|
||||
|
||||
bool ParabolaUtils::is_over_zero(const ParabolaSegment ¶bola)
|
||||
{
|
||||
Point line_direction = parabola.directrix.b - parabola.directrix.a;
|
||||
Point focus_from = parabola.focus - parabola.from;
|
||||
Point focus_to = parabola.focus - parabola.to;
|
||||
bool is_positive_x1 = line_direction.dot(focus_from) > 0.;
|
||||
bool is_positive_x2 = line_direction.dot(focus_to) > 0.;
|
||||
Vec2i64 line_direction = (parabola.directrix.b - parabola.directrix.a).cast<int64_t>();
|
||||
Vec2i64 focus_from = (parabola.focus - parabola.from).cast<int64_t>();
|
||||
Vec2i64 focus_to = (parabola.focus - parabola.to).cast<int64_t>();;
|
||||
bool is_positive_x1 = line_direction.dot(focus_from) > 0;
|
||||
bool is_positive_x2 = line_direction.dot(focus_to) > 0;
|
||||
return is_positive_x1 != is_positive_x2;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user