Commit Graph

53 Commits

Author SHA1 Message Date
01451d2e63 Removed the PRUS format parser. WIP: admesh eradication:
stl_stats are newly only accessed by TriangleMesh::stats(),
most of the direct access to TriangleMesh::stl is gone with the exception
of parsing input files (3MF, AMF, obj).
2021-09-14 11:58:14 +02:00
dddd85d9ed Fixed unit tests after the previous commit. 2021-09-11 00:54:30 +02:00
c5304750d9 Support for forward compatibility of configurations, user and system
config bundles, project files (3MFs, AMFs). When loading these files,
the caller may decide whether to substitute some of the configuration
values the current PrusaSlicer version does not understand with
some reasonable default value, and whether to report it. If substitution
is disabled, an exception is being thrown as before this commit.
If substitution is enabled, list of substitutions is returned by the
API to be presented to the user. This allows us to introduce for example
new firmware flavor key in PrusaSlicer 2.4 while letting PrusaSlicer
2.3.2 to fall back to some default and to report it to the user.

When slicing from command line, substutions are performed by default
and reported into the console, however substitutions may be either
disabled or made silent with the new "config-compatibility" command
line option.

Substitute enums and bools only.  Allow booleans to be parsed as
    true: "1", "enabled", "on" case insensitive
    false: "0", "disabled", "off" case insensitive
This will allow us in the future for example to switch the draft_shield
boolean to an enum with the following values: "disabled" / "enabled" / "limited".

Added "enum_bitmask.hpp" - support for type safe sets of options.
See for example PresetBundle::load_configbundle(...
LoadConfigBundleAttributes flags) for an example of intended usage.

WIP: GUI for reporting the list of config substitutions needs to be
implemented by @YuSanka.
2021-06-27 16:57:05 +02:00
39e17fd6b9 TriangleMeshSlicer: Got rid of admesh! 2021-05-18 15:05:30 +02:00
499d8405e9 WIP: Reworked slicing
1) Slicing code moved to TriangleMeshSlicer.cpp,hpp from TriangleMesh.cpp,hpp
2) Refactored to use as little as possible of admesh.
2021-05-17 20:25:59 +02:00
9314856372 Fixing unit tests. 2021-05-05 13:19:01 +02:00
17a63f974e Fixing unit tests 2021-04-21 15:31:06 +02:00
96c1193156 Fixed unit tests. 2021-04-21 13:30:32 +02:00
f7bb54e037 Fixed unit tests. 2021-03-15 09:55:56 +01:00
d46942b11a Fixing unit tests. 2021-03-15 09:55:56 +01:00
784e3c45b5 WIP: Refactored bridging flow from normal flow, new config value
'thick_bridges' to switch between the Slic3r vs. S3D/Cura/Ideamaker
way of printing 1st object layer over supports.
Simplified the PresetHints.
2021-03-15 09:55:56 +01:00
d62aace663 Reduction on compiler warnings, mainly on MSVC.
Fix of the new gap_fill_enable flag: Take it into account when comparing
regions.
2021-02-10 17:29:07 +01:00
3f2b57b1d4 Squash merge of lh_brim_rework,
brim separated to Brim.cpp,hpp
Refactored accessors to PrintObjectPtrs, PrintRegionPtrs, LayerPtrs,
SupportLayerPtrs for const correctness.
2021-02-03 15:12:53 +01:00
1c7059e707 Fixing unit tests for supports. After "dont_support_bridges" was fixed
for perimeters, no support was rightfully generated for a preset
using a default "dont_support_bridges" = off.
2020-12-11 17:57:49 +01:00
c393ace3a8 ENABLE_GCODE_VIEWER set as default in fff_print test and PrusaSlicer.cpp 2020-11-12 15:01:59 +01:00
f58ee46687 WIP Refactoring of exceptions:
1) All slicer's exceptions are now derived from Slic3r::Exception.
2) New exceptions are defined for slicing errors.
3) Exceptions are propagated to the Plater to show.
It remains to modify the slicing back-end to throw the new SlicingError
exceptions instead of std::runtime_error and to show the other exceptions
by a message dialog instead of a notification.
2020-09-14 18:03:22 +02:00
5a490e23b6 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_gcode_viewer 2020-06-29 08:48:23 +02:00
321961e71c Fixed unit tests on Windows after introduction of GMP to
boost::polygon Voronoi diagram generator by Vojtech.

Fixed Perl bindings on Windows after some "improvement" of the Windows 10
SDK headers, which fail if included from a C++ code using the
extern "C"
clause. Namely, the Windows 10 SDK include for sockets introduces C++ macros
if a "compiled with C++" symbol is provided even if included through
exetrn "C".
2020-06-27 08:44:13 +02:00
acd8801d3a Fixed conflicts after merge with master 2020-05-27 10:32:02 +02:00
c15a0d91bf Fixed unit tests after previous include manipulations 2020-05-26 15:33:44 +02:00
ebc3285003 Fixed conflicts after merge with master 2020-04-24 10:59:03 +02:00
2275698f1b Add ModelArrange.hpp as extension to Model.hpp, use it for duplicating
Refactored Arrange interface: remove the union based BedShapeHint, replace it with proper function overloads

WARN: this commit is only intermediate, it does not compile.
2020-04-23 18:19:03 +02:00
8ca136d003 Add min_object_distance method as free function taking ConfigBase argument 2020-04-23 18:17:37 +02:00
5b92741b23 Fixed conflicts after merge with master 2020-03-30 09:36:37 +02:00
7769f9740b 64bit coord_t
Vec3i as a vertex index to TriangleMesh constructor
2020-03-25 14:35:41 +01:00
7dd8ac8cb5 Fixed conflicts after merge with master 2020-03-25 12:07:59 +01:00
f26de2e1ac Fixed several warnings
The biggest difference is changing PresetCollection::m_idx_selected from int to size_t, which fixed many warnings at once.
2020-03-03 15:47:02 +01:00
77d41a143c ENABLE_GCODE_VIEWER - Basic framework for new gcode viewer 2020-03-02 15:13:23 +01:00
862e728502 Disable test_fill.cpp`"Solid surface fill" test for now due to precission issues 2019-11-05 18:18:27 +01:00
9e02a2248a Useful verbose test output on console with Catch2 2019-10-30 10:48:47 +01:00
c16b7eba53 Disabled broken tests, ported some more tests to C++,
removed Perl tests that were already ported to C++.
2019-10-25 18:23:42 +02:00
0ae69d3572 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-10-25 13:34:55 +02:00
f456f53d19 New functions for variable offsets of polygons / expolygons.
Test cases for the above.
Improvements of older test cases.
2019-10-25 13:34:37 +02:00
7c63af2859 Add catch2 extra args option to tests.
update example
2019-10-25 10:42:21 +02:00
f1a0c95abe test_printgcode.cpp - trying to replace std::regex with boost::regex
as the std::regex is likely old or incorrect on our old debian/gcc
build server.
2019-10-18 16:50:03 +02:00
81c40bf38f Fixing some GCodeExport and Flow unit tests. 2019-10-18 15:44:13 +02:00
9bb5a10bf5 Slight improvements of unit tests, fix of perl bindings. 2019-10-18 12:05:37 +02:00
a4c1cc9dd2 Ported test_support_material.cpp from upstream slic3r.
Ported extension of ExtrusionEntityCollection::flatten() to disable
flattening of no_sort() collections.
2019-10-17 19:09:24 +02:00
c045ea62dc Ported test_support_material from upstream Slic3r.
Reworked the FFF testing framework & ConfigBase::set_deserialize()
for more compact tests: set_deserialize() now accepts list
of key / value pairs.

Fixed an incorrect assert in LayerRegion.
2019-10-17 17:09:15 +02:00
cf38dd2e9f Fixed another weird auto + initializer list clang issue. 2019-10-16 18:23:33 +02:00
fb860b499b Fixes of unit tests on OSX. The old clang does not like the way
@lordofhyphens uses the initializer lists together with autos.
2019-10-16 17:55:41 +02:00
6fa25152d7 Ported test_fill from upstream Slic3r, thanks @lordofhyphens 2019-10-16 17:43:43 +02:00
27e18bb405 Ported test_printgcode from upstream Slic3r, thanks @lordofhyphens 2019-10-16 15:40:09 +02:00
3f594f0388 Ported test_print/test_printobject/test_3mf from upstream Slic3r, thanks @lordofhyphens 2019-10-16 13:20:09 +02:00
1d6cea5bb5 new cheaper constructor for DynamicPrintConfig from FullPrintConfig:
DynamicPrintConfig::full_print_config()
new cheaper constructors of DynamicConfig / DynamicPrintConfig from ConfigBase
Unit tests: ported test_model from upstream Slic3r, thanks @lordofhyphens
Unit tests refactored to use less autos and initializer lists for readibility,
DynamicPrintConfig is handled by value, not by shared pointer.
2019-10-16 11:16:50 +02:00
2037671650 Filling in the autos in the tests so it is readible and it compiles on OSX 2019-10-16 09:28:27 +02:00
435fae6ac5 Trying to fix compilation issues of the test cases on OSX. 2019-10-15 19:04:02 +02:00
ab61e289fc Fixing some compilation issues of the C++ test cases on OSX. 2019-10-15 18:38:40 +02:00
b9d171f2c7 Ported test_gcodewriter from upstream Slic3r, thanks @lordofhyphens.
The format for G1 Fxxx was changed to fixed three decimal digits.
2019-10-15 17:35:19 +02:00
3f57887454 Ported test_skirt_brim from upstream Slic3r, thanks @lordofhyphens 2019-10-15 16:31:20 +02:00