#ifndef SLIC3R_TEST_DATA_HPP #define SLIC3R_TEST_DATA_HPP #include "libslic3r/Point.hpp" #include "libslic3r/TriangleMesh.hpp" #include "libslic3r/Geometry.hpp" #include "libslic3r/Model.hpp" #include "libslic3r/Print.hpp" #include "libslic3r/Config.hpp" #include namespace Slic3r { namespace Test { constexpr double MM_PER_MIN = 60.0; /// Enumeration of test meshes enum class TestMesh { A, L, V, _40x10, cube_20x20x20, sphere_50mm, bridge, bridge_with_hole, cube_with_concave_hole, cube_with_hole, gt2_teeth, ipadstand, overhang, pyramid, sloping_hole, slopy_cube, small_dorito, step, two_hollow_squares }; // Neccessary for (tm); } }; /// Mesh enumeration to name mapping extern const std::unordered_map mesh_names; /// Port of Slic3r::Test::mesh /// Basic cubes/boxes should call TriangleMesh::make_cube() directly and rescale/translate it TriangleMesh mesh(TestMesh m); TriangleMesh mesh(TestMesh m, Vec3d translate, Vec3d scale = Vec3d(1.0, 1.0, 1.0)); TriangleMesh mesh(TestMesh m, Vec3d translate, double scale = 1.0); /// Templated function to see if two values are equivalent (+/- epsilon) template bool _equiv(const T& a, const T& b) { return abs(a - b) < Slic3r::Geometry::epsilon; } template bool _equiv(const T& a, const T& b, double epsilon) { return abs(a - b) < epsilon; } //Slic3r::Model model(const std::string& model_name, TestMesh m, Vec3d translate = Vec3d(0,0,0), Vec3d scale = Vec3d(1.0,1.0,1.0)); //Slic3r::Model model(const std::string& model_name, TestMesh m, Vec3d translate = Vec3d(0,0,0), double scale = 1.0); Slic3r::Model model(const std::string& model_name, TriangleMesh&& _mesh); std::shared_ptr init_print(std::initializer_list meshes, Slic3r::Model& model, std::shared_ptr _config = std::shared_ptr(Slic3r::DynamicPrintConfig::new_from_defaults()), bool comments = false); std::shared_ptr init_print(std::initializer_list meshes, Slic3r::Model& model, std::shared_ptr _config = std::shared_ptr(Slic3r::DynamicPrintConfig::new_from_defaults()), bool comments = false); std::string gcode(std::shared_ptr print); } } // namespace Slic3r::Test #endif // SLIC3R_TEST_DATA_HPP