OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::FirstIntersectionVisitor Struct Reference
Collaboration diagram for Slic3r::FirstIntersectionVisitor:

Public Member Functions

 FirstIntersectionVisitor (const EdgeGrid::Grid &grid)
bool operator() (coord_t iy, coord_t ix)

Public Attributes

const EdgeGrid::Grid & grid
const Slic3r::Point * pt_current = nullptr
const Slic3r::Point * pt_next = nullptr
bool intersect = false

Detailed Description

Constructor & Destructor Documentation

◆ FirstIntersectionVisitor()

Slic3r::FirstIntersectionVisitor::FirstIntersectionVisitor ( const EdgeGrid::Grid & grid)
inlineexplicit
116: grid(grid) {}
const EdgeGrid::Grid & grid
Definition AvoidCrossingPerimeters.cpp:137

References grid.

Member Function Documentation

◆ operator()()

bool Slic3r::FirstIntersectionVisitor::operator() ( coord_t iy,
coord_t ix )
inline
119 {
120 assert(pt_current != nullptr);
121 assert(pt_next != nullptr);
122 // Called with a row and column of the grid cell, which is intersected by a line.
123 auto cell_data_range = grid.cell_data_range(iy, ix);
124 this->intersect = false;
125 for (auto it_contour_and_segment = cell_data_range.first; it_contour_and_segment != cell_data_range.second; ++it_contour_and_segment) {
126 // End points of the line segment and their vector.
127 auto segment = grid.segment(*it_contour_and_segment);
129 this->intersect = true;
130 return false;
131 }
132 }
133 // Continue traversing the grid along the edge.
134 return true;
135 }
bool segments_intersect(const Slic3r::Point &ip1, const Slic3r::Point &ip2, const Slic3r::Point &jp1, const Slic3r::Point &jp2)
Definition Geometry.hpp:134
void segment(CGALMesh &src, std::vector< CGALMesh > &dst, double smoothing_alpha=0.5, int segment_number=5)
Definition MeshBoolean.cpp:480
const Slic3r::Point * pt_current
Definition AvoidCrossingPerimeters.cpp:138
const Slic3r::Point * pt_next
Definition AvoidCrossingPerimeters.cpp:139
bool intersect
Definition AvoidCrossingPerimeters.cpp:140

References grid, intersect, pt_current, pt_next, and Slic3r::Geometry::segments_intersect().

Here is the call graph for this function:

Member Data Documentation

◆ grid

const EdgeGrid::Grid& Slic3r::FirstIntersectionVisitor::grid

◆ intersect

bool Slic3r::FirstIntersectionVisitor::intersect = false

◆ pt_current

const Slic3r::Point* Slic3r::FirstIntersectionVisitor::pt_current = nullptr

◆ pt_next


The documentation for this struct was generated from the following file: