mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-07-29 18:22:00 +08:00
Fix arrange in fff tests
This commit is contained in:
parent
01d5f04295
commit
b2d43c8719
@ -54,11 +54,11 @@ std::set<ObjectID> selected_geometry_ids(const Scene &sc)
|
||||
return result;
|
||||
}
|
||||
|
||||
void arrange(Scene &scene, ArrangeTaskCtl &ctl)
|
||||
bool arrange(Scene &scene, ArrangeTaskCtl &ctl)
|
||||
{
|
||||
auto task = ArrangeTaskBase::create(Tasks::Arrange, scene);
|
||||
auto result = task->process(ctl);
|
||||
result->apply_on(scene.model());
|
||||
return result->apply_on(scene.model());
|
||||
}
|
||||
|
||||
}} // namespace Slic3r::arr2
|
||||
|
@ -373,10 +373,26 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
void arrange(Scene &scene, ArrangeTaskCtl &ctl);
|
||||
inline void arrange(Scene &scene, ArrangeTaskCtl &&ctl = DummyCtl{})
|
||||
bool arrange(Scene &scene, ArrangeTaskCtl &ctl);
|
||||
inline bool arrange(Scene &scene, ArrangeTaskCtl &&ctl = DummyCtl{})
|
||||
{
|
||||
arrange(scene, ctl);
|
||||
return arrange(scene, ctl);
|
||||
}
|
||||
|
||||
inline bool arrange(Scene &&scene, ArrangeTaskCtl &ctl)
|
||||
{
|
||||
return arrange(scene, ctl);
|
||||
}
|
||||
|
||||
inline bool arrange(Scene &&scene, ArrangeTaskCtl &&ctl = DummyCtl{})
|
||||
{
|
||||
return arrange(scene, ctl);
|
||||
}
|
||||
|
||||
template<class Builder, class Ctl = DummyCtl>
|
||||
bool arrange(SceneBuilderBase<Builder> &&builder, Ctl &&ctl = {})
|
||||
{
|
||||
return arrange(Scene{std::move(builder)}, ctl);
|
||||
}
|
||||
|
||||
} // namespace arr2
|
||||
|
@ -1,14 +1,11 @@
|
||||
#include "ModelArrange.hpp"
|
||||
|
||||
|
||||
#include <libslic3r/Arrange/SceneBuilder.hpp>
|
||||
#include <libslic3r/Arrange/Items/ArrangeItem.hpp>
|
||||
#include <libslic3r/Arrange/Tasks/MultiplySelectionTask.hpp>
|
||||
|
||||
#include <libslic3r/Model.hpp>
|
||||
#include <libslic3r/Geometry/ConvexHull.hpp>
|
||||
#include "Arrange/Core/ArrangeItemTraits.hpp"
|
||||
#include "Arrange/Items/ArrangeItem.hpp"
|
||||
|
||||
#include "MTUtils.hpp"
|
||||
|
||||
namespace Slic3r {
|
||||
|
||||
@ -27,14 +24,10 @@ bool arrange_objects(Model &model,
|
||||
const arr2::ArrangeBed &bed,
|
||||
const arr2::ArrangeSettingsView &settings)
|
||||
{
|
||||
arr2::Scene scene{arr2::SceneBuilder{}
|
||||
.set_bed(bed)
|
||||
.set_arrange_settings(settings)
|
||||
.set_model(model)};
|
||||
|
||||
auto task = arr2::ArrangeTaskBase::create(arr2::Tasks::Arrange, scene);
|
||||
auto result = task->process();
|
||||
return result->apply_on(scene.model());
|
||||
return arrange(arr2::SceneBuilder{}
|
||||
.set_bed(bed)
|
||||
.set_arrange_settings(settings)
|
||||
.set_model(model));
|
||||
}
|
||||
|
||||
void duplicate_objects(Model &model,
|
||||
|
@ -228,7 +228,7 @@ void init_print(std::vector<TriangleMesh> &&meshes, Slic3r::Print &print, Slic3r
|
||||
object->add_volume(std::move(t));
|
||||
object->add_instance();
|
||||
}
|
||||
arrange_objects(model, arr2::InfiniteBed{}, arr2::ArrangeSettings{}.set_distance_from_objects(min_object_distance(config)));
|
||||
arrange_objects(model, arr2::to_arrange_bed(get_bed_shape(config)), arr2::ArrangeSettings{}.set_distance_from_objects(min_object_distance(config)));
|
||||
model.center_instances_around_point({100, 100});
|
||||
for (ModelObject *mo : model.objects) {
|
||||
mo->ensure_on_bed();
|
||||
|
@ -42,8 +42,12 @@ SCENARIO("Model construction", "[Model]") {
|
||||
}
|
||||
}
|
||||
model_object->add_instance();
|
||||
arrange_objects(model, arr2::InfiniteBed{scaled(Vec2d(100, 100))}, arr2::ArrangeSettings{}.set_distance_from_objects(min_object_distance(config)));
|
||||
model_object->ensure_on_bed();
|
||||
arrange_objects(model,
|
||||
arr2::to_arrange_bed(get_bed_shape(config)),
|
||||
arr2::ArrangeSettings{}.set_distance_from_objects(
|
||||
min_object_distance(config)));
|
||||
|
||||
model_object->ensure_on_bed();
|
||||
print.auto_assign_extruders(model_object);
|
||||
THEN("Print works?") {
|
||||
print.set_status_silent();
|
||||
|
Loading…
x
Reference in New Issue
Block a user