some test code merge

wip test denserinfill
This commit is contained in:
supermerill 2019-06-25 19:04:33 +02:00
parent 9f91aba4f9
commit ef15ffa58e
10 changed files with 136 additions and 26 deletions

View File

@ -61,7 +61,7 @@ void PrintConfigDef::init_common_params()
def->sidetext = L("mm");
def->min = 0;
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloat(0.3));
def->set_default_value(new ConfigOptionFloat(0.2));
def = this->add("max_print_height", coFloat);
def->label = L("Max print height");
@ -1094,7 +1094,7 @@ void PrintConfigDef::init_fff_params()
def->sidetext = L("mm or %");
def->ratio_over = "layer_height";
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloatOrPercent(0.35, false));
def->set_default_value(new ConfigOptionFloatOrPercent(0.2, false));
def = this->add("first_layer_speed", coFloatOrPercent);
def->label = L("Default");

View File

@ -46,7 +46,7 @@ typedef double coordf_t;
#define INSET_OVERLAP_TOLERANCE 0.4
//FIXME Better to use an inline function with an explicit return type.
//inline coord_t scale_(coordf_t v) { return coord_t(floor(v / SCALING_FACTOR + 0.5f)); }
#define scale_(val) ((val) / SCALING_FACTOR)
#define scale_(val) (coord_t)((val) / SCALING_FACTOR)
#define SCALED_EPSILON scale_(EPSILON)

View File

@ -29,3 +29,4 @@ else()
message(STATUS "Miniz NOT found in system, using bundled version...")
endif()

View File

@ -18,6 +18,7 @@ set(SLIC3R_TEST_SOURCES
libslic3r/test_model.cpp
libslic3r/test_print.cpp
libslic3r/test_thin.cpp
libslic3r/test_denserinfill.cpp
)
if (NOT TARGET Catch)

View File

@ -7,7 +7,7 @@
#include "../test_data.hpp"
#include "../../slic3r.hpp"
#include "../../PrusaSlicer.hpp"
#include "../../libslic3r/GCodeReader.hpp"
using namespace Slic3r;

View File

@ -0,0 +1,39 @@
#include <catch.hpp>
#include "../test_data.hpp"
#include "../../libslic3r/libslic3r.h"
using namespace Slic3r;
using namespace Slic3r::Geometry;
SCENARIO("denser infills: ")
{
GIVEN("center hole")
{
WHEN("creating the medial axis"){
Model model{};
Print print{};
DynamicPrintConfig *config = Slic3r::DynamicPrintConfig::new_from_defaults();
Slic3r::Test::init_print(print, { Slic3r::Test::TestMesh::di_5mm_center_notch }, model, config, false);
print.process();
PrintObject& object = *(print.objects().at(0));
THEN("67 layers exist in the model") {
REQUIRE(object.layers().size() == 67);
}
THEN("at layer 13 , there are 1 region") {
REQUIRE(object.layers()[13]->region_count() == 2);
}
THEN("at layer 14 , there are 2 region") {
REQUIRE(object.layers()[14]->region_count() == 2);
}
THEN("at layer 15 , there are 2 region") {
REQUIRE(object.layers()[15]->region_count() == 2);
}
}
}
}

View File

@ -17,7 +17,7 @@ SCENARIO("Model construction") {
DynamicPrintConfig *config = Slic3r::DynamicPrintConfig::new_from_defaults();
Slic3r::Print print{};
print.apply_config(*config);
print.apply_config_perl_tests_only(*config);
//Slic3r::Test::init_print(print, { sample_mesh }, model, config);
WHEN("Model object is added") {
@ -63,7 +63,7 @@ SCENARIO("Model construction") {
SCENARIO("xy compensations"){
GIVEN(("A Square with a complex hole inside")){
Polygon square/*new_scale*/{ std::vector<Point>{
Slic3r::Polygon square/*new_scale*/{ std::vector<Point>{
Point{ 100, 100 },
Point{ 200, 100 },
Point{ 200, 200 },

View File

@ -1,3 +1,6 @@
#define CATCH_CONFIG_DISABLE
#include <catch.hpp>
#include "../test_data.hpp"
#include "../../libslic3r/ClipperUtils.hpp"
@ -224,10 +227,11 @@ SCENARIO("thin walls: ")
ExPolygon anchor = union_ex(ExPolygons{ tooth }, intersection_ex(ExPolygons{ base_part }, offset_ex(tooth, nozzle_diam / 2)), true)[0];
ThickPolylines res;
//expolygon.medial_axis(scale_(1), scale_(0.5), &res);
Slic3r::MedialAxis ma(tooth, anchor, nozzle_diam * 2, nozzle_diam*0.33, scale_(0.2));
ma.nozzle_diameter = nozzle_diam;
ma.anchor_size = 0.25*nozzle_diam;
ma.build(&res);
Slic3r::MedialAxis ma(tooth, nozzle_diam * 2, nozzle_diam/3, scale_(0.2));
ma.use_bounds(anchor)
.use_min_real_width(nozzle_diam)
.use_tapers(0.25*nozzle_diam);
ma.build(res);
THEN("medial axis of a simple line is one line") {
REQUIRE(res.size() == 1);
THEN("medial axis has the length of the line + the length of the anchor") {
@ -258,10 +262,11 @@ SCENARIO("thin walls: ")
ExPolygon anchor = union_ex(ExPolygons{ tooth }, intersection_ex(ExPolygons{ base_part }, offset_ex(tooth, nozzle_diam / 4)), true)[0];
ThickPolylines res;
//expolygon.medial_axis(scale_(1), scale_(0.5), &res);
Slic3r::MedialAxis ma(tooth, anchor, nozzle_diam * 2, nozzle_diam*0.33, scale_(0.6));
ma.nozzle_diameter = nozzle_diam;
ma.anchor_size = 1.0*nozzle_diam;
ma.build(&res);
Slic3r::MedialAxis ma(tooth, nozzle_diam * 2, nozzle_diam/3, scale_(0.6));
ma.use_bounds(anchor)
.use_min_real_width(nozzle_diam)
.use_tapers(1.0*nozzle_diam);
ma.build(res);
THEN("medial axis of a simple line is one line") {
REQUIRE(res.size() == 1);
THEN("medial axis has the length of the line + the length of the anchor") {

View File

@ -33,8 +33,13 @@ const std::unordered_map<TestMesh, const std::string, TestMeshHash> mesh_names {
std::make_pair<TestMesh, const std::string>(TestMesh::sloping_hole,"sloping_hole"),
std::make_pair<TestMesh, const std::string>(TestMesh::slopy_cube,"slopy_cube"),
std::make_pair<TestMesh, const std::string>(TestMesh::small_dorito,"small_dorito"),
std::make_pair<TestMesh, const std::string>(TestMesh::step,"step"),
std::make_pair<TestMesh, const std::string>(TestMesh::two_hollow_squares,"two_hollow_squares")
std::make_pair<TestMesh, const std::string>(TestMesh::step,"step"),
std::make_pair<TestMesh, const std::string>(TestMesh::two_hollow_squares,"two_hollow_squares"),
std::make_pair<TestMesh, const std::string>(TestMesh::di_5mm_center_notch,"5mm_center_notch"),
std::make_pair<TestMesh, const std::string>(TestMesh::di_10mm_notch,"10mm_notch"),
std::make_pair<TestMesh, const std::string>(TestMesh::di_20mm_notch,"20mm_notch"),
std::make_pair<TestMesh, const std::string>(TestMesh::di_25mm_notch,"25mm_notch")
};
@ -131,15 +136,31 @@ TriangleMesh mesh(TestMesh m) {
break;
case TestMesh::two_hollow_squares:
vertices = std::vector<Vec3d>{
Vec3d(66.7133483886719,104.286666870117,0), Vec3d(66.7133483886719,95.7133331298828,0), Vec3d(65.6666870117188,94.6666717529297,0), Vec3d(75.2866821289062,95.7133331298828,0), Vec3d(76.3333435058594,105.333335876465,0), Vec3d(76.3333435058594,94.6666717529297,0), Vec3d(65.6666870117188,105.33332824707,0), Vec3d(75.2866821289062,104.286666870117,0), Vec3d(71.1066818237305,104.58666229248,2.79999995231628), Vec3d(66.4133529663086,104.58666229248,2.79999995231628), Vec3d(75.5866851806641,104.58666229248,2.79999995231628), Vec3d(66.4133529663086,99.8933334350586,2.79999995231628), Vec3d(66.4133529663086,95.4133377075195,2.79999995231628), Vec3d(71.1066818237305,95.4133377075195,2.79999995231628), Vec3d(75.5866851806641,95.4133377075195,2.79999995231628), Vec3d(75.5866851806641,100.106666564941,2.79999995231628), Vec3d(74.5400161743164,103.540000915527,2.79999995231628), Vec3d(70.0320129394531,103.540000915527,2.79999995231628), Vec3d(67.4600067138672,103.540000915527,2.79999995231628), Vec3d(67.4600067138672,100.968002319336,2.79999995231628), Vec3d(67.4600067138672,96.4599990844727,2.79999995231628), Vec3d(74.5400161743164,99.0319976806641,2.79999995231628), Vec3d(74.5400161743164,96.4599990844727,2.79999995231628), Vec3d(70.0320129394531,96.4599990844727,2.79999995231628), Vec3d(123.666717529297,94.6666717529297,0), Vec3d(134.333312988281,94.6666717529297,0), Vec3d(124.413360595703,95.4133377075195,2.79999995231628), Vec3d(129.106674194336,95.4133377075195,2.79999995231628), Vec3d(133.586669921875,95.4133377075195,2.79999995231628), Vec3d(123.666717529297,105.33332824707,0), Vec3d(124.413360595703,104.58666229248,2.79999995231628), Vec3d(124.413360595703,99.8933334350586,2.79999995231628), Vec3d(134.333312988281,105.33332824707,0), Vec3d(129.106674194336,104.58666229248,2.79999995231628), Vec3d(133.586669921875,104.58666229248,2.79999995231628), Vec3d(133.586669921875,100.106666564941,2.79999995231628), Vec3d(124.713317871094,104.286666870117,0), Vec3d(124.713317871094,95.7133331298828,0), Vec3d(133.286712646484,95.7133331298828,0), Vec3d(133.286712646484,104.286666870117,0), Vec3d(132.540023803711,103.540000915527,2.79999995231628), Vec3d(128.032028198242,103.540008544922,2.79999995231628), Vec3d(125.460006713867,103.540000915527,2.79999995231628), Vec3d(125.460006713867,100.968002319336,2.79999995231628), Vec3d(125.460006713867,96.4599990844727,2.79999995231628), Vec3d(132.540023803711,99.0319976806641,2.79999995231628), Vec3d(132.540023803711,96.4599990844727,2.79999995231628), Vec3d(128.032028198242,96.4599990844727,2.79999995231628)
Vec3d(66.7133483886719,104.286666870117,0), Vec3d(66.7133483886719,95.7133331298828,0), Vec3d(65.6666870117188,94.6666717529297,0), Vec3d(75.2866821289062,95.7133331298828,0), Vec3d(76.3333435058594,105.333335876465,0), Vec3d(76.3333435058594,94.6666717529297,0),
Vec3d(65.6666870117188,105.33332824707,0), Vec3d(75.2866821289062,104.286666870117,0), Vec3d(71.1066818237305,104.58666229248,2.79999995231628), Vec3d(66.4133529663086,104.58666229248,2.79999995231628), Vec3d(75.5866851806641,104.58666229248,2.79999995231628),
Vec3d(66.4133529663086,99.8933334350586,2.79999995231628), Vec3d(66.4133529663086,95.4133377075195,2.79999995231628), Vec3d(71.1066818237305,95.4133377075195,2.79999995231628), Vec3d(75.5866851806641,95.4133377075195,2.79999995231628), Vec3d(75.5866851806641,100.106666564941,2.79999995231628),
Vec3d(74.5400161743164,103.540000915527,2.79999995231628), Vec3d(70.0320129394531,103.540000915527,2.79999995231628), Vec3d(67.4600067138672,103.540000915527,2.79999995231628), Vec3d(67.4600067138672,100.968002319336,2.79999995231628), Vec3d(67.4600067138672,96.4599990844727,2.79999995231628),
Vec3d(74.5400161743164,99.0319976806641,2.79999995231628), Vec3d(74.5400161743164,96.4599990844727,2.79999995231628), Vec3d(70.0320129394531,96.4599990844727,2.79999995231628), Vec3d(123.666717529297,94.6666717529297,0), Vec3d(134.333312988281,94.6666717529297,0),
Vec3d(124.413360595703,95.4133377075195,2.79999995231628), Vec3d(129.106674194336,95.4133377075195,2.79999995231628), Vec3d(133.586669921875,95.4133377075195,2.79999995231628), Vec3d(123.666717529297,105.33332824707,0), Vec3d(124.413360595703,104.58666229248,2.79999995231628),
Vec3d(124.413360595703,99.8933334350586,2.79999995231628), Vec3d(134.333312988281,105.33332824707,0), Vec3d(129.106674194336,104.58666229248,2.79999995231628), Vec3d(133.586669921875,104.58666229248,2.79999995231628), Vec3d(133.586669921875,100.106666564941,2.79999995231628),
Vec3d(124.713317871094,104.286666870117,0), Vec3d(124.713317871094,95.7133331298828,0), Vec3d(133.286712646484,95.7133331298828,0), Vec3d(133.286712646484,104.286666870117,0), Vec3d(132.540023803711,103.540000915527,2.79999995231628), Vec3d(128.032028198242,103.540008544922,2.79999995231628),
Vec3d(125.460006713867,103.540000915527,2.79999995231628), Vec3d(125.460006713867,100.968002319336,2.79999995231628), Vec3d(125.460006713867,96.4599990844727,2.79999995231628), Vec3d(132.540023803711,99.0319976806641,2.79999995231628), Vec3d(132.540023803711,96.4599990844727,2.79999995231628),
Vec3d(128.032028198242,96.4599990844727,2.79999995231628)
};
facets = std::vector<Vec3i32>{
Vec3i32(0,1,2), Vec3i32(3,4,5), Vec3i32(6,4,0), Vec3i32(6,0,2), Vec3i32(2,1,5), Vec3i32(7,4,3), Vec3i32(1,3,5), Vec3i32(0,4,7), Vec3i32(4,6,8), Vec3i32(6,9,8), Vec3i32(4,8,10), Vec3i32(6,2,9), Vec3i32(2,11,9), Vec3i32(2,12,11), Vec3i32(2,5,12), Vec3i32(5,13,12), Vec3i32(5,14,13), Vec3i32(4,10,15), Vec3i32(5,4,14), Vec3i32(4,15,14), Vec3i32(7,16,17), Vec3i32(0,7,18), Vec3i32(7,17,18), Vec3i32(1,19,20), Vec3i32(1,0,19), Vec3i32(0,18,19), Vec3i32(7,3,21), Vec3i32(3,22,21), Vec3i32(7,21,16), Vec3i32(3,23,22), Vec3i32(3,1,23), Vec3i32(1,20,23), Vec3i32(24,25,26), Vec3i32(25,27,26), Vec3i32(25,28,27), Vec3i32(29,24,30), Vec3i32(24,31,30), Vec3i32(24,26,31), Vec3i32(32,29,33), Vec3i32(29,30,33), Vec3i32(32,33,34), Vec3i32(32,34,35), Vec3i32(25,32,28), Vec3i32(32,35,28), Vec3i32(36,37,24), Vec3i32(38,32,25), Vec3i32(29,32,36), Vec3i32(29,36,24), Vec3i32(24,37,25), Vec3i32(39,32,38), Vec3i32(37,38,25), Vec3i32(36,32,39), Vec3i32(39,40,41), Vec3i32(36,39,42), Vec3i32(39,41,42), Vec3i32(37,43,44), Vec3i32(37,36,43), Vec3i32(36,42,43), Vec3i32(39,38,45), Vec3i32(38,46,45), Vec3i32(39,45,40), Vec3i32(38,47,46), Vec3i32(38,37,47), Vec3i32(37,44,47), Vec3i32(16,8,9), Vec3i32(16,10,8), Vec3i32(10,16,15), Vec3i32(15,16,21), Vec3i32(22,15,21), Vec3i32(15,22,14), Vec3i32(22,23,14), Vec3i32(23,20,14), Vec3i32(17,16,9), Vec3i32(18,17,9), Vec3i32(19,18,9), Vec3i32(19,9,11), Vec3i32(19,11,20), Vec3i32(13,14,20), Vec3i32(20,11,12), Vec3i32(13,20,12), Vec3i32(41,40,30), Vec3i32(42,41,30), Vec3i32(43,42,30), Vec3i32(43,30,31), Vec3i32(43,31,44), Vec3i32(27,28,44), Vec3i32(44,31,26), Vec3i32(27,44,26), Vec3i32(40,33,30), Vec3i32(40,34,33), Vec3i32(34,40,35), Vec3i32(35,40,45), Vec3i32(46,35,45), Vec3i32(35,46,28), Vec3i32(46,47,28), Vec3i32(47,44,28) ,
Vec3i32(0,1,2), Vec3i32(3,4,5), Vec3i32(6,4,0), Vec3i32(6,0,2), Vec3i32(2,1,5), Vec3i32(7,4,3), Vec3i32(1,3,5), Vec3i32(0,4,7), Vec3i32(4,6,8), Vec3i32(6,9,8), Vec3i32(4,8,10), Vec3i32(6,2,9), Vec3i32(2,11,9), Vec3i32(2,12,11), Vec3i32(2,5,12), Vec3i32(5,13,12), Vec3i32(5,14,13),
Vec3i32(4,10,15), Vec3i32(5,4,14), Vec3i32(4,15,14), Vec3i32(7,16,17), Vec3i32(0,7,18), Vec3i32(7,17,18), Vec3i32(1,19,20), Vec3i32(1,0,19), Vec3i32(0,18,19), Vec3i32(7,3,21), Vec3i32(3,22,21), Vec3i32(7,21,16), Vec3i32(3,23,22), Vec3i32(3,1,23), Vec3i32(1,20,23), Vec3i32(24,25,26),
Vec3i32(25,27,26), Vec3i32(25,28,27), Vec3i32(29,24,30), Vec3i32(24,31,30), Vec3i32(24,26,31), Vec3i32(32,29,33), Vec3i32(29,30,33), Vec3i32(32,33,34), Vec3i32(32,34,35), Vec3i32(25,32,28), Vec3i32(32,35,28), Vec3i32(36,37,24), Vec3i32(38,32,25), Vec3i32(29,32,36), Vec3i32(29,36,24),
Vec3i32(24,37,25), Vec3i32(39,32,38), Vec3i32(37,38,25), Vec3i32(36,32,39), Vec3i32(39,40,41), Vec3i32(36,39,42), Vec3i32(39,41,42), Vec3i32(37,43,44), Vec3i32(37,36,43), Vec3i32(36,42,43), Vec3i32(39,38,45), Vec3i32(38,46,45), Vec3i32(39,45,40), Vec3i32(38,47,46), Vec3i32(38,37,47),
Vec3i32(37,44,47), Vec3i32(16,8,9), Vec3i32(16,10,8), Vec3i32(10,16,15), Vec3i32(15,16,21), Vec3i32(22,15,21), Vec3i32(15,22,14), Vec3i32(22,23,14), Vec3i32(23,20,14), Vec3i32(17,16,9), Vec3i32(18,17,9), Vec3i32(19,18,9), Vec3i32(19,9,11), Vec3i32(19,11,20), Vec3i32(13,14,20),
Vec3i32(20,11,12), Vec3i32(13,20,12), Vec3i32(41,40,30), Vec3i32(42,41,30), Vec3i32(43,42,30), Vec3i32(43,30,31), Vec3i32(43,31,44), Vec3i32(27,28,44), Vec3i32(44,31,26), Vec3i32(27,44,26), Vec3i32(40,33,30), Vec3i32(40,34,33), Vec3i32(34,40,35), Vec3i32(35,40,45), Vec3i32(46,35,45),
Vec3i32(35,46,28), Vec3i32(46,47,28), Vec3i32(47,44,28) ,
};
break;
case TestMesh::small_dorito:
vertices = std::vector<Vec3d>{
Vec3d(6.00058937072754,-22.9982089996338,0), Vec3d(22.0010242462158,-49.9998741149902,0), Vec3d(-9.99957847595215,-49.999870300293,0), Vec3d(6.00071382522583,-32.2371635437012,28.0019245147705), Vec3d(11.1670551300049,-37.9727020263672,18.9601669311523), Vec3d(6.00060224533081,-26.5392456054688,10.7321853637695)
Vec3d(6.00058937072754,-22.9982089996338,0), Vec3d(22.0010242462158,-49.9998741149902,0), Vec3d(-9.99957847595215,-49.999870300293,0), Vec3d(6.00071382522583,-32.2371635437012,28.0019245147705), Vec3d(11.1670551300049,-37.9727020263672,18.9601669311523),
Vec3d(6.00060224533081,-26.5392456054688,10.7321853637695)
};
facets = std::vector<Vec3i32>{
Vec3i32(0,1,2), Vec3i32(3,4,5), Vec3i32(2,1,4), Vec3i32(2,4,3), Vec3i32(2,3,5), Vec3i32(2,5,0), Vec3i32(5,4,1), Vec3i32(5,1,0)
@ -150,7 +171,8 @@ TriangleMesh mesh(TestMesh m) {
Vec3d(75,84.5,8), Vec3d(125,84.5,8), Vec3d(75,94.5,8), Vec3d(120,84.5,5), Vec3d(125,94.5,8), Vec3d(75,84.5,0), Vec3d(80,84.5,5), Vec3d(125,84.5,0), Vec3d(125,94.5,0), Vec3d(80,94.5,5), Vec3d(75,94.5,0), Vec3d(120,94.5,5), Vec3d(120,84.5,0), Vec3d(80,94.5,0), Vec3d(80,84.5,0), Vec3d(120,94.5,0)
};
facets = std::vector<Vec3i32>{
Vec3i32(0,1,2), Vec3i32(1,0,3), Vec3i32(2,1,4), Vec3i32(2,5,0), Vec3i32(0,6,3), Vec3i32(1,3,7), Vec3i32(1,8,4), Vec3i32(4,9,2), Vec3i32(10,5,2), Vec3i32(5,6,0), Vec3i32(6,11,3), Vec3i32(3,12,7), Vec3i32(7,8,1), Vec3i32(4,8,11), Vec3i32(4,11,9), Vec3i32(9,10,2), Vec3i32(10,13,5), Vec3i32(14,6,5), Vec3i32(9,11,6), Vec3i32(11,12,3), Vec3i32(12,8,7), Vec3i32(11,8,15), Vec3i32(13,10,9), Vec3i32(5,13,14), Vec3i32(14,13,6), Vec3i32(6,13,9), Vec3i32(15,12,11), Vec3i32(15,8,12)
Vec3i32(0,1,2), Vec3i32(1,0,3), Vec3i32(2,1,4), Vec3i32(2,5,0), Vec3i32(0,6,3), Vec3i32(1,3,7), Vec3i32(1,8,4), Vec3i32(4,9,2), Vec3i32(10,5,2), Vec3i32(5,6,0), Vec3i32(6,11,3), Vec3i32(3,12,7), Vec3i32(7,8,1), Vec3i32(4,8,11), Vec3i32(4,11,9), Vec3i32(9,10,2), Vec3i32(10,13,5),
Vec3i32(14,6,5), Vec3i32(9,11,6), Vec3i32(11,12,3), Vec3i32(12,8,7), Vec3i32(11,8,15), Vec3i32(13,10,9), Vec3i32(5,13,14), Vec3i32(14,13,6), Vec3i32(6,13,9), Vec3i32(15,12,11), Vec3i32(15,8,12)
};
break;
case TestMesh::bridge_with_hole:
@ -158,7 +180,8 @@ TriangleMesh mesh(TestMesh m) {
Vec3d(75,69.5,8), Vec3d(80,76.9091644287109,8), Vec3d(75,94.5,8), Vec3d(125,69.5,8), Vec3d(120,76.9091644287109,8), Vec3d(120,87.0908355712891,8), Vec3d(80,87.0908355712891,8), Vec3d(125,94.5,8), Vec3d(80,87.0908355712891,5), Vec3d(120,87.0908355712891,5), Vec3d(125,94.5,0), Vec3d(120,69.5,0), Vec3d(120,94.5,0), Vec3d(125,69.5,0), Vec3d(120,94.5,5), Vec3d(80,94.5,5), Vec3d(80,94.5,0), Vec3d(75,94.5,0), Vec3d(80,69.5,5), Vec3d(80,69.5,0), Vec3d(80,76.9091644287109,5), Vec3d(120,69.5,5), Vec3d(75,69.5,0), Vec3d(120,76.9091644287109,5)
};
facets = std::vector<Vec3i32>{
Vec3i32(0,1,2), Vec3i32(1,0,3), Vec3i32(1,3,4), Vec3i32(4,3,5), Vec3i32(2,6,7), Vec3i32(6,2,1), Vec3i32(7,6,5), Vec3i32(7,5,3), Vec3i32(5,8,9), Vec3i32(8,5,6), Vec3i32(10,11,12), Vec3i32(11,10,13), Vec3i32(14,8,15), Vec3i32(8,14,9), Vec3i32(2,16,17), Vec3i32(16,2,15), Vec3i32(15,2,14), Vec3i32(14,10,12), Vec3i32(10,14,7), Vec3i32(7,14,2), Vec3i32(16,18,19), Vec3i32(18,16,20), Vec3i32(20,16,1), Vec3i32(1,16,8), Vec3i32(8,16,15), Vec3i32(6,1,8), Vec3i32(3,11,13), Vec3i32(11,3,21), Vec3i32(21,3,18), Vec3i32(18,22,19), Vec3i32(22,18,0), Vec3i32(0,18,3), Vec3i32(16,22,17), Vec3i32(22,16,19), Vec3i32(2,22,0), Vec3i32(22,2,17), Vec3i32(5,23,4), Vec3i32(23,11,21), Vec3i32(11,23,12), Vec3i32(12,23,9), Vec3i32(9,23,5), Vec3i32(12,9,14), Vec3i32(23,18,20), Vec3i32(18,23,21), Vec3i32(10,3,13), Vec3i32(3,10,7), Vec3i32(1,23,20), Vec3i32(23,1,4)
Vec3i32(0,1,2), Vec3i32(1,0,3), Vec3i32(1,3,4), Vec3i32(4,3,5), Vec3i32(2,6,7), Vec3i32(6,2,1), Vec3i32(7,6,5), Vec3i32(7,5,3), Vec3i32(5,8,9), Vec3i32(8,5,6), Vec3i32(10,11,12), Vec3i32(11,10,13), Vec3i32(14,8,15), Vec3i32(8,14,9), Vec3i32(2,16,17), Vec3i32(16,2,15), Vec3i32(15,2,14),
Vec3i32(14,10,12), Vec3i32(10,14,7), Vec3i32(7,14,2), Vec3i32(16,18,19), Vec3i32(18,16,20), Vec3i32(20,16,1), Vec3i32(1,16,8), Vec3i32(8,16,15), Vec3i32(6,1,8), Vec3i32(3,11,13), Vec3i32(11,3,21), Vec3i32(21,3,18), Vec3i32(18,22,19), Vec3i32(22,18,0), Vec3i32(0,18,3), Vec3i32(16,22,17), Vec3i32(22,16,19), Vec3i32(2,22,0), Vec3i32(22,2,17), Vec3i32(5,23,4), Vec3i32(23,11,21), Vec3i32(11,23,12), Vec3i32(12,23,9), Vec3i32(9,23,5), Vec3i32(12,9,14), Vec3i32(23,18,20), Vec3i32(18,23,21), Vec3i32(10,3,13), Vec3i32(3,10,7), Vec3i32(1,23,20), Vec3i32(23,1,4)
};
break;
case TestMesh::step:
@ -166,7 +189,8 @@ TriangleMesh mesh(TestMesh m) {
Vec3d(0,20,5), Vec3d(0,20,0), Vec3d(0,0,5), Vec3d(0,0,0), Vec3d(20,0,0), Vec3d(20,0,5), Vec3d(1,19,5), Vec3d(1,1,5), Vec3d(19,1,5), Vec3d(20,20,5), Vec3d(19,19,5), Vec3d(20,20,0), Vec3d(19,19,10), Vec3d(1,19,10), Vec3d(1,1,10), Vec3d(19,1,10)
};
facets = std::vector<Vec3i32>{
Vec3i32(0,1,2), Vec3i32(1,3,2), Vec3i32(3,4,5), Vec3i32(2,3,5), Vec3i32(6,0,2), Vec3i32(6,2,7), Vec3i32(5,8,7), Vec3i32(5,7,2), Vec3i32(9,10,8), Vec3i32(9,8,5), Vec3i32(9,0,6), Vec3i32(9,6,10), Vec3i32(9,11,1), Vec3i32(9,1,0), Vec3i32(3,1,11), Vec3i32(4,3,11), Vec3i32(5,11,9), Vec3i32(5,4,11), Vec3i32(12,10,6), Vec3i32(12,6,13), Vec3i32(6,7,14), Vec3i32(13,6,14), Vec3i32(7,8,15), Vec3i32(14,7,15), Vec3i32(15,8,10), Vec3i32(15,10,12), Vec3i32(12,13,14), Vec3i32(12,14,15)
Vec3i32(0,1,2), Vec3i32(1,3,2), Vec3i32(3,4,5), Vec3i32(2,3,5), Vec3i32(6,0,2), Vec3i32(6,2,7), Vec3i32(5,8,7), Vec3i32(5,7,2), Vec3i32(9,10,8), Vec3i32(9,8,5), Vec3i32(9,0,6), Vec3i32(9,6,10), Vec3i32(9,11,1), Vec3i32(9,1,0), Vec3i32(3,1,11), Vec3i32(4,3,11), Vec3i32(5,11,9),
Vec3i32(5,4,11), Vec3i32(12,10,6), Vec3i32(12,6,13), Vec3i32(6,7,14), Vec3i32(13,6,14), Vec3i32(7,8,15), Vec3i32(14,7,15), Vec3i32(15,8,10), Vec3i32(15,10,12), Vec3i32(12,13,14), Vec3i32(12,14,15)
};
break;
case TestMesh::slopy_cube:
@ -179,7 +203,43 @@ TriangleMesh mesh(TestMesh m) {
Vec3i32(2,3,10) , Vec3i32(9,10,12) , Vec3i32(13,9,12) , Vec3i32(3,1,8) , Vec3i32(11,3,8) , Vec3i32(10,11,8) , Vec3i32(4,10,8) , Vec3i32(6,12,10) , Vec3i32(4,6,10) ,
Vec3i32(7,13,12) , Vec3i32(6,7,12) , Vec3i32(7,5,9) , Vec3i32(13,7,9)
};
break;
break;
case TestMesh::di_5mm_center_notch:
vertices = std::vector<Vec3d>{
Vec3d(-15,-15,-5),Vec3d(-15,15,5),Vec3d(-15,15,-5),Vec3d(-15,-15,5),Vec3d(3,-2,5),Vec3d(15,15,5),Vec3d(3,3,5),Vec3d(-2,3,5),Vec3d(-2,-2,5),Vec3d(15,-15,5),Vec3d(15,15,-5),Vec3d(15,-15,-5),Vec3d(-2,3,0),Vec3d(-2,-2,0),Vec3d(3,-2,0),Vec3d(3,3,0)
};
facets = std::vector<Vec3i32>{
Vec3i32(0,1,2),Vec3i32(1,0,3),Vec3i32(4,5,6),Vec3i32(5,7,6),Vec3i32(7,1,8),Vec3i32(1,7,5),Vec3i32(5,4,9),Vec3i32(8,9,4),Vec3i32(8,3,9),Vec3i32(3,8,1),Vec3i32(9,10,5),Vec3i32(10,9,11),Vec3i32(10,1,5),Vec3i32(1,10,2),Vec3i32(0,10,11),Vec3i32(10,0,2),Vec3i32(0,9,3),Vec3i32(9,0,11),
Vec3i32(8,12,7),Vec3i32(12,8,13),Vec3i32(14,6,15),Vec3i32(6,14,4),Vec3i32(12,14,15),Vec3i32(14,12,13),Vec3i32(14,8,4),Vec3i32(8,14,13),Vec3i32(12,6,7),Vec3i32(6,12,15)
};
break;
case TestMesh::di_10mm_notch:
vertices = std::vector<Vec3d>{
Vec3d(-15,15,-5),Vec3d(-15,-5,0),Vec3d(-15,15,5),Vec3d(-15,-15,-5),Vec3d(-15,-15,0),Vec3d(-15,-5,5),Vec3d(15,15,5),Vec3d(-5,-5,5),Vec3d(15,-15,5),Vec3d(-5,-15,5),Vec3d(15,15,-5),Vec3d(15,-15,-5),Vec3d(-5,-15,0),Vec3d(-5,-5,0)
};
facets = std::vector<Vec3i32>{
Vec3i32(0,1,2),Vec3i32(3,1,0),Vec3i32(1,3,4),Vec3i32(2,1,5),Vec3i32(6,7,8),Vec3i32(2,7,6),Vec3i32(7,2,5),Vec3i32(8,7,9),Vec3i32(8,10,6),Vec3i32(10,8,11),Vec3i32(10,2,6),Vec3i32(2,10,0),Vec3i32(3,10,11),Vec3i32(10,3,0),Vec3i32(4,3,12),Vec3i32(12,8,9),Vec3i32(11,12,3),Vec3i32(12,11,8),
Vec3i32(12,7,13),Vec3i32(7,12,9),Vec3i32(1,7,5),Vec3i32(7,1,13),Vec3i32(1,12,13),Vec3i32(12,1,4),
};
break;
case TestMesh::di_20mm_notch:
vertices = std::vector<Vec3d>{
Vec3d(-15,15,-5),Vec3d(-15,5,0),Vec3d(-15,15,5),Vec3d(-15,-15,-5),Vec3d(-15,-15,0),Vec3d(-15,5,5),Vec3d(15,15,5),Vec3d(5,5,5),Vec3d(15,-15,5),Vec3d(5,-15,5),Vec3d(15,15,-5),Vec3d(15,-15,-5),Vec3d(5,-15,0),Vec3d(5,5,0),
};
facets = std::vector<Vec3i32>{
Vec3i32(0,1,2),Vec3i32(3,1,0),Vec3i32(1,3,4),Vec3i32(2,1,5),Vec3i32(6,7,8),Vec3i32(2,7,6),Vec3i32(7,2,5),Vec3i32(8,7,9),Vec3i32(8,10,6),Vec3i32(10,8,11),Vec3i32(3,10,11),Vec3i32(10,3,0),Vec3i32(4,3,12),Vec3i32(12,8,9),Vec3i32(12,11,8),Vec3i32(11,12,3),Vec3i32(10,2,6),Vec3i32(2,10,0),
Vec3i32(12,7,13),Vec3i32(7,12,9),Vec3i32(1,12,13),Vec3i32(12,1,4),Vec3i32(1,7,5),Vec3i32(7,1,13),
};
break;
case TestMesh::di_25mm_notch:
vertices = std::vector<Vec3d>{
Vec3d(-15,15,-5),Vec3d(-15,10,0),Vec3d(-15,15,5),Vec3d(-15,-15,-5),Vec3d(-15,-15,0),Vec3d(-15,10,5),Vec3d(15,15,5),Vec3d(10,10,5),Vec3d(15,-15,5),Vec3d(10,-15,5),Vec3d(15,15,-5),Vec3d(15,-15,-5),Vec3d(10,-15,0),Vec3d(10,10,0),
};
facets = std::vector<Vec3i32>{
Vec3i32(0,1,2),Vec3i32(3,1,0),Vec3i32(1,3,4),Vec3i32(2,1,5),Vec3i32(6,7,8),Vec3i32(2,7,6),Vec3i32(7,2,5),Vec3i32(8,7,9),Vec3i32(8,10,6),Vec3i32(10,8,11),Vec3i32(3,10,11),Vec3i32(10,3,0),Vec3i32(4,3,12),Vec3i32(12,8,9),Vec3i32(12,11,8),Vec3i32(11,12,3),Vec3i32(10,2,6),Vec3i32(2,10,0),
Vec3i32(12,7,13),Vec3i32(7,12,9),Vec3i32(1,7,5),Vec3i32(7,1,13),Vec3i32(1,12,13),Vec3i32(12,1,4),
};
break;
default:
break;
}
@ -214,7 +274,7 @@ void init_print(Print& print, std::initializer_list<TestMesh> meshes, Slic3r::Mo
//if (tests_gcode != ""s)
// config->set_key_value("gcode_comments", new ConfigOptionBool(true));
print.apply_config(*config);
print.apply_config_perl_tests_only(*config);
for (const TestMesh& t : meshes) {
ModelObject* object {model.add_object()};
object->name += std::string(mesh_names.at(t)) + ".stl"s;
@ -247,7 +307,7 @@ void init_print(Print& print, std::initializer_list<TriangleMesh> meshes, Slic3r
if (tests_gcode != ""s)
config->set_key_value("gcode_comments", new ConfigOptionBool(true));
print.apply_config(*config);
print.apply_config_perl_tests_only(*config);
for (const TriangleMesh& t : meshes) {
ModelObject* object {model.add_object()};
object->name += "object.stl"s;

View File

@ -32,7 +32,11 @@ enum class TestMesh {
slopy_cube,
small_dorito,
step,
two_hollow_squares
two_hollow_squares,
di_5mm_center_notch,
di_10mm_notch,
di_20mm_notch,
di_25mm_notch
};
// Neccessary for <c++17