This commit is contained in:
sunsets
2024-05-20 16:05:56 +08:00
3 changed files with 46 additions and 8 deletions

View File

@@ -616,14 +616,14 @@ Surfaces expand_bridges_detect_orientations(Surfaces &
} }
//w36 //w36
static Surfaces expand_merge_surfaces(Surfaces & surfaces, Surfaces expand_merge_surfaces(Surfaces & surfaces,
SurfaceType surface_type, SurfaceType surface_type,
ExPolygons & shells, ExPolygons & shells,
const Algorithm::RegionExpansionParameters &expansion_params_into_solid_infill, const Algorithm::RegionExpansionParameters &expansion_params_into_solid_infill,
ExPolygons & sparse, ExPolygons & sparse,
const Algorithm::RegionExpansionParameters &expansion_params_into_sparse_infill, const Algorithm::RegionExpansionParameters &expansion_params_into_sparse_infill,
const float closing_radius, const float closing_radius,
const double bridge_angle = -1.) const double bridge_angle )
{ {
using namespace Slic3r::Algorithm; using namespace Slic3r::Algorithm;

View File

@@ -205,23 +205,44 @@ struct ExpansionZone {
* detect bridges. * detect bridges.
* Trim "shells" by the expanded bridges. * Trim "shells" by the expanded bridges.
*/ */
Surfaces expand_bridges_detect_orientations( // w36
/* Surfaces expand_bridges_detect_orientations(
Surfaces &surfaces, Surfaces &surfaces,
std::vector<ExpansionZone>& expansion_zones, std::vector<ExpansionZone>& expansion_zones,
const float closing_radius const float closing_radius
); );*/
//w36
Surfaces expand_bridges_detect_orientations(Surfaces & surfaces,
ExPolygons & shells,
const Algorithm::RegionExpansionParameters &expansion_params_into_solid_infill,
ExPolygons & sparse,
const Algorithm::RegionExpansionParameters &expansion_params_into_sparse_infill,
const float closing_radius);
/** /**
* Extract bridging surfaces from "surfaces", expand them into "shells" using expansion_params. * Extract bridging surfaces from "surfaces", expand them into "shells" using expansion_params.
* Trim "shells" by the expanded bridges. * Trim "shells" by the expanded bridges.
*/ */
Surfaces expand_merge_surfaces(
// w36
/* Surfaces expand_merge_surfaces(
Surfaces &surfaces, Surfaces &surfaces,
SurfaceType surface_type, SurfaceType surface_type,
std::vector<ExpansionZone>& expansion_zones, std::vector<ExpansionZone>& expansion_zones,
const float closing_radius, const float closing_radius,
const double bridge_angle = -1 const double bridge_angle = -1
); );*/
// w36
Surfaces expand_merge_surfaces(Surfaces & surfaces,
SurfaceType surface_type,
ExPolygons & shells,
const Algorithm::RegionExpansionParameters &expansion_params_into_solid_infill,
ExPolygons & sparse,
const Algorithm::RegionExpansionParameters &expansion_params_into_sparse_infill,
const float closing_radius,
const double bridge_angle = -1.);
} }

View File

@@ -75,13 +75,26 @@ struct LayerRegionFixture {
TEST_CASE_METHOD(LayerRegionFixture, "test the surface expansion", "[LayerRegion]") { TEST_CASE_METHOD(LayerRegionFixture, "test the surface expansion", "[LayerRegion]") {
const double custom_angle{1.234f}; const double custom_angle{1.234f};
const Surfaces result{expand_merge_surfaces( // w36
/* const Surfaces result{expand_merge_surfaces(
surfaces, stBottomBridge, surfaces, stBottomBridge,
expansion_zones, expansion_zones,
closing_radius, closing_radius,
custom_angle custom_angle
)};*/
// w36
const Surfaces result{expand_merge_surfaces(
surfaces, stBottomBridge,
shells,
expansion_params_into_solid_infill,
sparse,
expansion_params_into_sparse_infill,
closing_radius
)}; )};
if constexpr (export_svgs) { if constexpr (export_svgs) {
SVG svg("general_expansion.svg", BoundingBox{ SVG svg("general_expansion.svg", BoundingBox{
Point{scaled(-3.0), scaled(-1.0)}, Point{scaled(-3.0), scaled(-1.0)},
@@ -112,9 +125,13 @@ TEST_CASE_METHOD(LayerRegionFixture, "test the surface expansion", "[LayerRegion
} }
TEST_CASE_METHOD(LayerRegionFixture, "test the bridge expansion with the bridge angle detection", "[LayerRegion]") { TEST_CASE_METHOD(LayerRegionFixture, "test the bridge expansion with the bridge angle detection", "[LayerRegion]") {
// w36
Surfaces result{expand_bridges_detect_orientations( Surfaces result{expand_bridges_detect_orientations(
surfaces, surfaces,
expansion_zones, shells,
expansion_params_into_solid_infill,
sparse,
expansion_params_into_sparse_infill,
closing_radius closing_radius
)}; )};