633ce8aa21
New step - estimation of curling on both the model and the support extrusions. Improvements in curled filament estimation algortihm Implementation of Jump Point Search algorithm Use of JPS algorithm to avoid curled extrusions during travel moves in Gcode export
36 lines
1.5 KiB
C++
36 lines
1.5 KiB
C++
#include <catch2/catch.hpp>
|
|
#include "libslic3r/BoundingBox.hpp"
|
|
#include "libslic3r/JumpPointSearch.hpp"
|
|
|
|
using namespace Slic3r;
|
|
|
|
TEST_CASE("Test jump point search path finding", "[JumpPointSearch]")
|
|
{
|
|
Lines obstacles{};
|
|
obstacles.push_back(Line(Point::new_scale(0, 0), Point::new_scale(50, 50)));
|
|
obstacles.push_back(Line(Point::new_scale(0, 100), Point::new_scale(50, 50)));
|
|
obstacles.push_back(Line(Point::new_scale(0, 0), Point::new_scale(100, 0)));
|
|
obstacles.push_back(Line(Point::new_scale(0, 100), Point::new_scale(100, 100)));
|
|
obstacles.push_back(Line(Point::new_scale(25, -25), Point::new_scale(25, 125)));
|
|
|
|
JPSPathFinder jps;
|
|
jps.add_obstacles(obstacles);
|
|
|
|
Polyline path = jps.find_path(Point::new_scale(5, 50), Point::new_scale(100, 50));
|
|
path = jps.find_path(Point::new_scale(5, 50), Point::new_scale(150, 50));
|
|
path = jps.find_path(Point::new_scale(5, 50), Point::new_scale(25, 15));
|
|
path = jps.find_path(Point::new_scale(25, 25), Point::new_scale(125, 125));
|
|
|
|
// SECTION("Output is empty when source is also the destination") {
|
|
// bool found = astar::search_route(DummyTracer{}, 0, std::back_inserter(out));
|
|
// REQUIRE(out.empty());
|
|
// REQUIRE(found);
|
|
// }
|
|
|
|
// SECTION("Return false when there is no route to destination") {
|
|
// bool found = astar::search_route(DummyTracer{}, 1, std::back_inserter(out));
|
|
// REQUIRE(!found);
|
|
// REQUIRE(out.empty());
|
|
// }
|
|
}
|