1665 {
1666 int row = 2 * int(®ion_from -
m_regions.data()) + flipped_from;
1667 int col = 2 * int(®ion_to -
m_regions.data()) + flipped_to;
1669 if (path.length == -1.) {
1670
1671 int i_from = region_from.right_intersection_point(flipped_from);
1672 int i_to = region_to.left_intersection_point(flipped_to);
1673 const SegmentedIntersectionLine &vline_from =
m_segs[region_from.right.vline];
1674 const SegmentedIntersectionLine &vline_to =
m_segs[region_to.left.vline];
1675 if (region_from.right.vline + 1 == region_from.left.vline) {
1676 int i_right = vline_from.intersections[i_from].right_horizontal();
1678
1680 }
1681 }
1682 if (path.length == -1.) {
1683
1684 path.length = unscale<float>(
Vec2f(vline_to.pos - vline_from.pos, vline_to.intersections[i_to].pos() - vline_from.intersections[i_from].pos()).norm());
1685 }
1686 path.visibility = 1.f / (path.length + float(
EPSILON));
1687 }
1688 return path;
1689 }
EIGEN_DEVICE_FUNC RowXpr row(Index i)
This is the const version of row(). */.
Definition BlockMethods.h:859
EIGEN_DEVICE_FUNC ColXpr col(Index i)
This is the const version of col().
Definition BlockMethods.h:838
static constexpr double EPSILON
Definition libslic3r.h:51
static coordf_t measure_perimeter_horizontal_segment_length(const ExPolygonWithOffset &poly_with_offset, const std::vector< SegmentedIntersectionLine > &segs, size_t iVerticalLine, size_t iIntersection, size_t iIntersection2)
Definition FillRectilinear.cpp:561
Eigen::Matrix< float, 2, 1, Eigen::DontAlign > Vec2f
Definition Point.hpp:48