mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-08-06 13:34:05 -06:00
Improvements in Inner Outer Inner wall ordering logic (#6138)
* Improvements in Inner Outer Inner wall ordering logic * Updated to BFS algorithm, made ordering more robust and corrected edge cases * Doc updates * Refinements in perimeter sorting * Removal of touch threshold and code debugging to improve sequencing * Code cleanup * Code refinements on perimeter distance thresholds * Extend perimeter re-ordering to more than inset index 2, to reduce travel moves when printing neighbouring features * Refinements to IOI perimeter re-ordering algorithm to improve travel scenarios where multiple external perimeters are contained in the same island. * Documentation updates * Removed unnecessary code * Removed bespoke to_points function and replaced with ExtrusionLine member already present. Removed squaredDistance and replaced with Eigen library call. * Refactor code to move distancing functions to the multipoint class. Renamed for more clarity on their purpose.
This commit is contained in:
parent
7082e945b1
commit
9a260010fc
4 changed files with 248 additions and 45 deletions
|
@ -98,6 +98,9 @@ public:
|
|||
static Points _douglas_peucker(const Points &points, const double tolerance);
|
||||
static Points visivalingam(const Points& pts, const double tolerance);
|
||||
static Points concave_hull_2d(const Points& pts, const double tolerence);
|
||||
|
||||
//Orca: Distancing function used by IOI wall ordering algorithm for arachne
|
||||
static double minimumDistanceBetweenLinesDefinedByPoints(const Points& A, const Points& B);
|
||||
|
||||
inline auto begin() { return points.begin(); }
|
||||
inline auto begin() const { return points.begin(); }
|
||||
|
@ -105,6 +108,10 @@ public:
|
|||
inline auto end() const { return points.end(); }
|
||||
inline auto cbegin() const { return points.begin(); }
|
||||
inline auto cend() const { return points.end(); }
|
||||
|
||||
private:
|
||||
//Orca: Distancing function used by IOI wall ordering algorithm for arachne
|
||||
static double squaredDistanceToLineSegment(const Point& p, const Point& v, const Point& w);
|
||||
};
|
||||
|
||||
class MultiPoint3
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue