ENH: reopen confilctchecker with adpative height.

and fix conflict checking when the wipe tower's brim fully encloses the model

jira: STUDIO-10237, STUDIO-10296
Change-Id: I6e2a6640c06ddb6b3af700c9048fa26434411631
(cherry picked from commit b36c41e5146168325d8b7ec966eb97f1062442a7)
This commit is contained in:
jiangkai.zhao
2025-02-17 11:47:41 +08:00
committed by Noisyfox
parent d1d04d395e
commit 820f12a16b
5 changed files with 61 additions and 39 deletions

View File

@@ -37,6 +37,7 @@ class SupportLayer;
// BBS
class TreeSupportData;
class TreeSupport;
class ExtrusionLayers;
#define MAX_OUTER_NOZZLE_DIAMETER 4
// BBS: move from PrintObjectSlice.cpp
@@ -600,7 +601,7 @@ struct FakeWipeTower
float rotation_angle;
float cone_angle;
Vec2d plate_origin;
Polylines outer_wall; //wipe tower's true outer wall
std::map<float , Polylines> outer_wall; //wipe tower's true outer wall and brim
void set_fake_extrusion_data(Vec2f p, float w, float h, float lh, float d, float bd, Vec2d o)
{
@@ -654,18 +655,7 @@ struct FakeWipeTower
return paths;
}
std::vector<ExtrusionPaths> getTrueExtrusionPathsFromWipeTower() const
{
std::vector<ExtrusionPaths> paths;
Point trans = {scale_(pos.x()), scale_(pos.y())};
for (auto &polyline : outer_wall) {
ExtrusionPath path(ExtrusionRole::erWipeTower, 0.0, 0.0, layer_height);
path.polyline.points.reserve( polyline.points.size());
for (auto &p : polyline.points) path.polyline.points.push_back(p + trans);
paths.push_back({path});
}
return paths;
}
ExtrusionLayers getTrueExtrusionLayersFromWipeTower() const;
std::vector<ExtrusionPaths> getFakeExtrusionPathsFromWipeTower2() const
{