Commit Graph

494 Commits

Author SHA1 Message Date
Vojtech Bubnik
f5ec76c230 Follow-up to dc3931ec1f:
Fix mutable priority queue being wiped when moving out of function
    Without move constructor, the clean() gets called when returning an instance from a function.
The above fix was applied also to MutableSkipHeapPriorityQueue.

Follow-up to 15a082b80b:
Fixed TEST_CASE("Mutable priority queue - first pop", "[MutableSkipHeapPriorityQueue]")
2022-05-16 17:27:10 +02:00
Vojtech Bubnik
15a082b80b Fix of libslic3r "Mutable priority queue - first pop" test failure #8276
Improved readability by introducing invalid_id() getter.
Made the ResetIndexWhenRemoved flag active in both debug and release mode,
it used to be made active by Vojtech for release mode only for unknown
reason.
2022-05-16 11:34:26 +02:00
tamasmeszaros
de84fbf23d Remove junk output to stdout from various tests 2022-05-16 10:28:43 +02:00
PavelMikus
d0c08ec5c1 Feature: AABB tree for lines
Small refactoring of AABB tree distance query function, to allow different primitives (apart from triangles)
Implemented Distancer and functions to create AABB tree from lines and use closest point query
Added test for the AABBTree with lines
Added Benchmark comparing EdgeGrid with AABBTree on line contours (Inside AABBTree test file, disabled under compilation flag)
2022-05-12 12:55:10 +02:00
Filip Sykala
9316cd2d54 Fix serialization
add test
2022-05-11 20:48:54 +02:00
Filip Sykala
34304a40bf Merge branch 'master' into fs_emboss 2022-05-11 16:05:40 +02:00
tamasmeszaros
6b23e90424 Add astar algorithm
Fix windows build
2022-05-11 12:06:07 +02:00
tamasmeszaros
fed317f27b Change std::nan("") to proper nan constants 2022-05-11 10:35:12 +02:00
tamasmeszaros
12a54251c9 Extend kdtree with k-nearest and bounding box queries
Also add test to verify it
2022-05-11 10:35:01 +02:00
Filip Sykala
effad3a6f8 fix initialization type 2022-05-09 17:02:55 +02:00
Vojtech Bubnik
e687db9eb0 Ported custom_gcode and print unit tests from Perl to C++. 2022-05-06 18:30:18 +02:00
Filip Sykala
6ab517187f Fix mismatch of data types.
Separate checks.
2022-05-06 13:37:35 +02:00
Filip Sykala
05354eda0c Merge branch 'master' into fs_emboss
# Conflicts:
#	src/slic3r/GUI/GLCanvas3D.cpp
2022-05-06 08:58:04 +02:00
Vojtech Bubnik
d4b8d4d0f3 Further Perl unit test porting to C++ and Perl interface reduction:
Ported cooling, gap fill, thin walls and polyline unit tests.
2022-05-05 17:57:57 +02:00
Filip Sykala
864d1e5830 Cut surface in backend job
Store flag about use surface(into 3mf and style)
GUI: Add checkbox to start using model surface
2022-05-04 19:42:39 +02:00
Vojtech Bubnik
576c167bd5 Ported "avoid crossing perimeters" and bridging unit tests from Perl
to C++.
Further reduced Perl bindings.
Got rid of the ExPolygonCollection wrapper, replaced with ExPolygons.
2022-05-04 18:21:08 +02:00
Vojtech Bubnik
a627614b58 Perl unit tests for perimeters and multi-material were rewritten to C++.
Perl binding was slimmed down, namely Clipper is no more linked by Perl.
2022-05-04 15:06:04 +02:00
Filip Sykala
e5bf946008 Fix filtering order of AOIs 2022-05-03 13:05:58 +02:00
Filip Sykala
51b103885c Fix of flood fill on edge 2022-05-02 17:29:56 +02:00
Vojtech Bubnik
33b2478b69 Ported Infill unit tests from Perl to C++. 2022-05-02 14:34:50 +02:00
Vojtech Bubnik
3687bc28d5 Some reduction of Perl dependencies on ClipperLib,
ported some ClipperLib polyline clipping tests to C++.
2022-05-02 14:34:50 +02:00
Filip Sykala
3e9778b46b Merge branch 'et_world_coordinates' into fs_emboss 2022-05-02 10:11:47 +02:00
Filip Sykala
a1d7040902 WIP: cut surface of model
update emboss icons to not be soo huge - pixel preccisse
2022-04-26 17:43:38 +02:00
tamasmeszaros
4148d7332e Prohibit multiple formats with the same extension (zip)
Archive format can be specified as a hint when a reader is created.
2022-04-26 14:43:28 +02:00
tamasmeszaros
784105f5ad Extend sla archive tests with read-back 2022-04-26 10:57:49 +02:00
tamasmeszaros
5ecf29f303 Separate existing sla archive import code 2022-04-26 09:38:03 +02:00
Vojtech Bubnik
42e802c1b8 Refactoring of Curves.hpp for better memory management and vectorization
(replaced vector of vectors with Eigen 2D matrices).
2022-04-25 12:42:51 +02:00
Vojtech Bubnik
7d02647ebf Removed various Point::ccw() and Point::ccw_angle() methods, they were
provided for Perl bindings and their semantic was confusing.
Implemented free function angle() to measure angle between two vectors.
Reworked Polygon::convex/concave_points(), changed the meaning of their
angle threshold parameter.
Removed some unused methods from Perl bindings and tests.
Reworked the "wipe inside at the external perimeter" function
after Point::ccw_angle() was removed.
2022-04-25 12:42:51 +02:00
PavelMikus
5c23d471de BSplines, Polynomial fitting 2022-04-25 12:42:51 +02:00
PavelMikus
bbcd6be250 Implemented piecewise data (curve) fitting with variable kernels 2022-04-25 12:42:51 +02:00
Vojtech Bubnik
926ae04718 Follow-up to 408e56f039
Fixing compilation of tests on latest GCC/boost
2022-04-25 11:32:09 +02:00
Filip Sykala
331d4d4557 Show user warning about unknown symbols by font inside of input text
Fix correct selection of collection ascent, descent, ...
Remove boost log from emboss --> not work properly on thread
2022-04-07 16:34:14 +02:00
Filip Sykala
d91d13c769 Fix of backslash ending line in comment
../tests/libslic3r/test_quadric_edge_collapse.cpp:162:5: warning: multi-line comment [-Wcomment]
../tests/libslic3r/test_quadric_edge_collapse.cpp:165:5: warning: multi-line comment [-Wcomment]
2022-04-05 16:28:34 +02:00
Filip Sykala
ee50af26c3 Fix Linux memory leaks 2022-03-25 15:50:13 +01:00
Filip Sykala
08c6e4faec Add emboss text test
(created mainly to profile conversion)
2022-03-25 11:06:58 +01:00
Filip Sykala
583babb3b4 Merge branch 'master' into fs_emboss 2022-03-24 11:48:09 +01:00
Lukáš Hejl
97a5aa9592 Added a new test case for a missing Voronoi vertex. 2022-03-24 11:30:32 +01:00
Filip Sykala
e6838f7e18 add new cgal as technology 2022-03-22 15:47:34 +01:00
Vojtech Bubnik
59e14cb752 Reworked constrained Delanay triangulation of polygons / expolygons
using CGAL CDT implementation:
Removed all the sets / maps, replaced with vectors and CDT vertex
intrusive indices.
Reworked the outside / inside classification using just the CDT
"constrained edge" attributes and a single queue.

Cherry pick commit 1648ae853d6c69a1118efbc694dadeb9965154ee
2022-03-17 13:09:10 +01:00
Filip Sykala
84bde2163d Partialy prepare surface cut 2022-03-16 16:58:36 +01:00
Filip Sykala
87f22765ba Separate functionality 2022-03-15 19:53:43 +01:00
Filip Sykala
41e6dba3df Fix fill on edge
change color to enum
2022-03-14 11:12:53 +01:00
Filip Sykala
572207e1c3 partial refactor 2022-03-11 16:54:53 +01:00
Filip Sykala
9e1ebcf4c6 revert auto formating 2022-03-09 13:41:41 +01:00
Filip Sykala
70b94d592b Merge branch 'et_world_coordinates' into fs_emboss_with_CGAL_5_4
# Conflicts:
#	src/libslic3r/Technologies.hpp
#	src/slic3r/GUI/Gizmos/GLGizmoBase.hpp
#	src/slic3r/GUI/Gizmos/GLGizmosManager.cpp
2022-03-09 11:06:58 +01:00
Filip Sykala
57c75395c6 fix test 2022-03-09 10:59:22 +01:00
Filip Sykala
4a399789f4 Add vojta test 2022-03-09 09:41:03 +01:00
Filip Sykala
a6834a1a82 WxUtils are using imap
Remove unused map utils
2022-03-08 09:22:56 +01:00
Filip Sykala
41a506688a Change 2 map to bimap in TextConfigurationSerialization 2022-03-08 08:35:26 +01:00
Filip Sykala
6fdaee3cfe Fix data type of collection
Fix warnings
../src/libslic3r/Emboss.cpp:135:24: warning: comparison of integer expressions of different signedness: 'int' and 'const unsigned int' [-Wsign-compare]
../src/libslic3r/Emboss.cpp:653:20: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
../src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp:2057:12: warning: unused variable 'count_icons' [-Wunused-variable]
../src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp:2058:12: warning: unused variable 'count_states' [-Wunused-variable]
2022-03-07 12:16:24 +01:00
Filip Sykala
0d724ad646 Fix test to be runable on other computers. 2022-03-07 11:40:23 +01:00
Filip Sykala
a000d12361 Change test to use font from resources 2022-03-02 14:31:56 +01:00
Filip Sykala
18d269506a add index of font inside of collection to FontProp(font property) + serialization/deserialization (3mf + appConfig)
separate glyph cache from FontFile
2022-02-28 18:32:50 +01:00
Lukas Matena
e058f794d9 Merge branch 'stable' 2022-02-24 13:05:05 +01:00
Filip Sykala
ca79932d30 Reduce test to use only STB calls 2022-02-23 13:55:27 +01:00
Filip Sykala
482e510d7f Add temporary test for win/mac 2022-02-23 13:29:26 +01:00
Filip Sykala
24207403ea Merge branch 'master' into fs_emboss 2022-02-22 13:51:04 +01:00
tamasmeszaros
4f2772fef4 Fix sla archive tests 2022-02-18 14:30:13 +01:00
tamasmeszaros
b8718f4601 Silence sla print messages for archive export tests 2022-02-17 14:05:45 +01:00
tamasmeszaros
66f60de556 SLAArchive framework refactor 2022-02-17 12:50:40 +01:00
Filip Sykala
faa63f3182 Merge branch 'master' into fs_emboss
# Conflicts:
#	src/libslic3r/Format/3mf.cpp
2022-02-10 14:04:02 +01:00
Lukáš Hejl
9b9f93ca07 Make unit test 'fff_print_tests' to pass when a memory leak is detected.
This is just for fixing builds from the stable branch, the master branch doesn't need it.
2022-02-09 13:43:51 +01:00
tamasmeszaros
7a092467a8 Disable overly detailed test outputs 2022-02-03 17:12:53 +01:00
tamasmeszaros
72da90d28f WIP
wip
2022-02-03 16:10:03 +01:00
Filip Sykala
3f58cf73af Fix for:
../tests/libslic3r/test_emboss.cpp:200:38: error: 'directory_iterator' is unavailable: introduced in macOS 10.15
../tests/libslic3r/test_emboss.cpp:200:57: error: 'path' is unavailable: introduced in macOS 10.15
2022-02-03 13:12:14 +01:00
Filip Sykala
546009a8e9 Fix Mac build 2022-02-03 12:45:39 +01:00
Filip Sykala
e783086689 Remove Simplify from tests 2022-02-03 10:25:06 +01:00
Filip Sykala
a50d93cd66 Merge branch 'master' into fs_emboss
# Conflicts:
#	src/libslic3r/Geometry.cpp
#	src/slic3r/GUI/Gizmos/GLGizmoBase.cpp
#	src/slic3r/GUI/Gizmos/GLGizmoMove.cpp
#	src/slic3r/GUI/Gizmos/GLGizmoMove.hpp
#	src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp
#	src/slic3r/GUI/Gizmos/GLGizmoRotate.hpp
#	src/slic3r/GUI/Gizmos/GLGizmoScale.cpp
#	src/slic3r/GUI/Gizmos/GLGizmoScale.hpp
#	src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp
#	src/slic3r/GUI/ImGuiWrapper.cpp
#	src/slic3r/GUI/ImGuiWrapper.hpp
#	src/slic3r/GUI/Selection.cpp
#	tests/slic3rutils/slic3r_jobs_tests.cpp
2022-02-02 15:27:25 +01:00
Filip Sykala
af69a4f2de create emboss text mesh on same place as update
fix:
Un Itelic redraw
../src/slic3r/Utils/WxFontUtils.hpp:49:77: error: non-const lvalue reference to type 'shared_ptr<...>' cannot bind to a temporary of type 'shared_ptr<...>'
../src/slic3r/Utils/WxFontUtils.hpp:55:75: error: non-const lvalue reference to type 'shared_ptr<...>' cannot bind to a temporary of type 'shared_ptr<...>'
2022-01-31 13:17:24 +01:00
enricoturri1966
8d94841fa3 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into dev 2022-01-29 09:17:30 +01:00
Vojtech Bubnik
ba84240a85 Fixed unit-tests of GCodeFindReplace
Follow-up to 7da4bebe7a
    WIP GCode substitutions: Changed the format of gcode_substitutions by
    adding an empty comment as a fourth parameter to each substitution.
    In the future, we will provide a UI to show / edit the comment.
2022-01-28 11:02:06 +01:00
enricoturri1966
703aefa75c Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into dev 2022-01-27 12:04:47 +01:00
Vojtech Bubnik
7ba5a2f5bc GCodeFindReplace - single line option unit tests. 2022-01-25 16:54:16 +01:00
tamasmeszaros
960158b79f Fix failing test for new ui jobs 2022-01-18 10:54:37 +01:00
YuSanka
fec654513e Merge remote-tracking branch 'origin/master' into dev 2022-01-18 08:41:10 +01:00
Vojtech Bubnik
aa62868ccb WIP G-code find & replace: Unit tests and some bug fixes. 2022-01-17 12:29:47 +01:00
enricoturri1966
c07a848257 Follow-up of 6201dad245 - Fixed test_color.cpp 2022-01-14 08:26:13 +01:00
enricoturri1966
a2dc1cd446 Fixed conflicts after merge with dev branch 2022-01-12 15:54:48 +01:00
tamasmeszaros
43f5e61b5f Add possibility to wait for current job to stop. 2022-01-11 11:26:26 +01:00
tamasmeszaros
e367ef8011 Fix job tests on Win, don't use usleep() 2022-01-11 11:26:26 +01:00
tamasmeszaros
7e070d393e Fix issue with non atomic transition to running state
After popping a job from input queue
2022-01-11 11:26:26 +01:00
tamasmeszaros
7352e1a01a Basic tests for BoostThreadWorker
Separate job tests
2022-01-11 11:26:26 +01:00
Filip Sykala
4ec4bafe19 Create Emboss::Font as unique ptr not optional
Reason: Job need pointer on font until finished
2022-01-06 16:12:15 +01:00
Filip Sykala
b1b8eee3c9 add is italic check for font file 2022-01-06 11:29:16 +01:00
enricoturri1966
ab99a7865f Fixed build of test_color.cpp on non-Windows OSs 2021-12-22 11:31:35 +01:00
enricoturri1966
cd4094743e Tech ENABLE_COLOR_CLASSES - 1st installment -> Introduction of classes ColorRGB and ColorRGBA to unify color data definition and manipulation 2021-12-22 10:45:35 +01:00
Filip Sykala
5464b650d1 Merge branch 'tm_ui_job_rework_2' into fs_emboss
# Conflicts:
#	src/slic3r/CMakeLists.txt
#	src/slic3r/GUI/Jobs/PlaterJob.cpp
2021-12-14 19:04:52 +01:00
Filip Sykala
88523bceb6 Merge branch 'master' into fs_emboss 2021-12-13 10:52:04 +01:00
Vojtech Bubnik
d6bb8eead9 Fixed 3mf unit tests to pass on ARM 64bit 2021-12-06 14:20:52 +01:00
tamasmeszaros
35ca045b1c Add possibility to wait for current job to stop. 2021-12-03 01:59:34 +01:00
tamasmeszaros
2b945f36f1 Fix job tests on Win, don't use usleep() 2021-12-02 15:34:20 +01:00
tamasmeszaros
78118b7b1d Fix issue with non atomic transition to running state
After popping a job from input queue
2021-12-02 15:06:58 +01:00
tamasmeszaros
39198ff845 Basic tests for BoostThreadWorker
Separate job tests
2021-12-02 15:06:35 +01:00
Filip Sykala
d698df2c31 Merge branch 'master' into fs_emboss
# Conflicts:
#	src/slic3r/GUI/GUI_App.cpp
#	tests/libslic3r/test_indexed_triangle_set.cpp
2021-12-01 14:35:42 +01:00
Vojtech Bubnik
7a2bd9023a One more fix to run unit tests on Windows: Missing DLLS need to be copied. 2021-11-30 11:00:26 +01:00
Vojtech Bubnik
5fd279cbc8 Fixing clang compiler warnings 2021-11-30 10:50:27 +01:00
Justin Schuh
cb4bade69f
Add missing setupapi.lib to slic3rutils tests (#7382)
thanks
2021-11-30 10:22:50 +01:00
Filip Sykala
eba68f9a9e Merge branch 'master' into fs_emboss
# Conflicts:
#	src/slic3r/GUI/GUI_ObjectList.cpp
#	src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp
#	src/slic3r/GUI/ImGuiWrapper.hpp
2021-11-23 09:09:09 +01:00
Vojtech Bubnik
cc44089440 New BuildVolume class was created, which detects build volume type (rectangular,
circular, convex, concave) and performs efficient collision detection agains these build
volumes. As of now, collision detection is performed against a convex
hull of a concave build volume for efficency.

GCodeProcessor::Result renamed out of GCodeProcessor to GCodeProcessorResult,
so it could be forward declared.

Plater newly exports BuildVolume, not Bed3D. Bed3D is a rendering class,
while BuildVolume is a purely geometric class.

Reduced usage of global wxGetApp, the Bed3D is passed as a parameter
to View3D/Preview/GLCanvas.

Convex hull code was extracted from Geometry.cpp/hpp to Geometry/ConvexHulll.cpp,hpp.
New test inside_convex_polygon().
New efficent point inside polygon test: Decompose convex hull
to bottom / top parts and use the decomposition to detect point inside
a convex polygon in O(log n). decompose_convex_polygon_top_bottom(),
inside_convex_polygon().

New Circle constructing functions: circle_ransac() and circle_taubin_newton().

New polygon_is_convex() test with unit tests.
2021-11-16 10:15:51 +01:00
Filip Sykala
d3dd025833 Draw text convex hull 2021-11-04 12:41:53 +01:00
Filip Sykala
9749dcb959 extend qec tests 2021-11-03 09:56:06 +01:00
Filip Sykala
f9bdde5603 Remove SimplifyMesh 2021-11-02 14:23:49 +01:00
Vojtech Bubnik
d78a5acba9 Numerical improvements to Welzel minimum enclosing circle algorithm 2021-10-30 11:18:36 +02:00
Vojtech Bubnik
3216448bbc PlaceholderParser: implemented round(), digits() and zdigits() macros.
round() rounds to an integer.
This is a popular request, for example #3472

digits(value, num_digits, num_decimals) rounds to num_digits and
	num_decimals, left filled with spaces.
digits(value, num_digits) the same as digits(value, num_digits, 0)
    Neither decimal separator nor any decimals after decimal separator
    are emitted.
zdigits(...) is the same as digits(...) only left filled with zeros.
If the result does not fit num_digits, the result is never trimmed.
2021-10-29 13:36:26 +02:00
Vojtech Bubnik
cf7b6fb19a Extracted MedialAxis code from Geometry.cpp/hpp, moved to its own
files to Geometry/
Moved other Voronoi files to Geometry/
2021-10-27 16:03:04 +02:00
Vojtech Bubnik
497905406b New code for minimum enclosing circle by randomized Welzl algorithm.
Split the circle code from Geometry.cpp/hpp to Geometry/Circle.cpp,hpp
2021-10-27 15:12:29 +02:00
Filip Sykala
b5a075ce4a Merge branch 'master' into fs_emboss 2021-10-26 18:58:38 +02:00
Vojtech Bubnik
743b99d22c Unit tests to the new optimized implementation of
Line::parallel_to() a Line::perpendicular_to().
2021-10-25 12:03:44 +02:00
Vojtech Bubnik
be236eda85 Renamed Geometry::intersect() to Geometry::convex_polygons_intersect()
to convey its true meaning.
2021-10-23 15:29:18 +02:00
Filip Sykala
ae5f594e1e Merge branch 'master' into fs_emboss 2021-10-21 19:43:05 +02:00
Filip Sykala
323b12fbee Change 3mf XML store/load text - NOT back compatible 2021-10-21 15:34:41 +02:00
tamasmeszaros
5f19539df5 Obvious fixes to stupid warnings 2021-10-21 09:55:12 +02:00
Filip Sykala
7f848b0603 fix test 2021-10-21 08:36:38 +02:00
Filip Sykala
b04bd6a8ad Temporary Skip test 2021-10-20 16:52:11 +02:00
Filip Sykala
6c8f754186 Merge branch 'master' into fs_emboss
# Conflicts:
#	src/slic3r/GUI/3DScene.cpp
2021-10-19 13:40:19 +02:00
Filip Sykala
e8f7f3245f Refactoring tests 2021-10-19 13:34:26 +02:00
Vojtech Bubnik
7ff76d0768 New ClipperUtils functions: opening(), closing() as an alternative
for offset2() with clear meaning.
New ClipperUtils functions: expand(), shrink() as an alternative
for offset() with clear meaning.
All offset values for the new functions are positive.

Various offsetting ClipperUtils (offset, offset2, offset2_ex) working
over Polygons were marked as unsafe, sometimes producing invalid output
if called for more than one polygon. These functions were reworked
to offset polygons one by one. The new functions working over Polygons
shall work the same way as the old safe ones working over ExPolygons,
but working with Polygons shall be computationally more efficient.

Improvements in FDM support generator:
1) For both grid and snug supports: Don't filter out supports for which
   the contacts are completely reduced by support / object XY separation.
2) Rounding / merging of supports using the closing radius parameter is
   now smoother, it does not produce sharp corners.
3) Snug supports: When calculating support interfaces, expand the projected
   support contact areas to produce wider, printable and more stable interfaces.
4) Don't reduce support interfaces for snug supports for steep overhangs,
   that would normally not need them. Snug supports often produce very
   narrow support interface regions and turning them off makes the support
   interfaces disappear.
2021-10-14 09:11:31 +02:00
Filip Sykala
3bd9fc07d2 Merge branch 'master' into fs_emboss
# Conflicts:
#	src/libslic3r/Format/3mf.cpp
#	src/slic3r/GUI/Gizmos/GLGizmoSimplify.hpp
2021-10-07 08:28:17 +02:00
tamasmeszaros
4cc1b2740d Don't report intersection if two polygons are only touching. 2021-10-04 14:16:13 +02:00
tamasmeszaros
9fce0ce3a6 Fix compile issues and overlapping polygon fails 2021-10-01 18:27:37 +02:00
Lukas Matena
476b48ed11 Revert "Merge branch 'tm_convex_intersect_rotcalip'"
This reverts commit 627d8bcaef, reversing
changes made to 66d4462724.

The change breaks build on mac
2021-09-30 16:49:00 +02:00
tamasmeszaros
234f062ad4 Fast convex polygon intersection test with rotating calipers 2021-09-30 15:49:12 +02:00
Vojtech Bubnik
6c37955d75 Moved a commented out test for DynamicPrintConfig serialization
/ deserialization into a living unit test.
2021-09-24 11:32:15 +02:00
Filip Sykala
7a3b220f0a Clean up 2021-09-22 12:11:05 +02:00
Vojtech Bubnik
8a2a9dba2f Eradicated admesh from TriangleMesh:
TriangleMesh newly only holds indexed_triangle_set and
TriangleMeshStats. TriangleMeshStats contains an excerpt of stl_stats.
TriangleMeshStats are updated when initializing with indexed_triangle_set.

Admesh triangle mesh fixing is newly only used when loading an STL.
AMF / 3MF / OBJ file formats are already indexed triangle sets, thus
they are no more converted to admesh stl_file format, nor fixed
through admesh repair machinery. When importing AMF / 3MF / OBJ files,
volume is calculated and if negative, all faces are flipped. Also
a bounding box and number of open edges is calculated.

Implemented its_number_of_patches(), its_num_open_edges()
Optimized its_split(), its_is_splittable() using a visitor pattern.

Reworked QHull integration into TriangleMesh:
    1) Face normals were not right.
    2) Indexed triangle set is newly emitted instead of duplicating
       vertices for each face.

Fixed cut_mesh(): Orient the triangulated faces correctly.
2021-09-20 17:12:22 +02:00
Filip Sykala
2b0408cc24 Using ExPolygons instead of polygons to represents shape of letters(text) 2021-09-17 23:07:17 +02:00
Vojtech Bubnik
58d8ab3dea 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
Filip Sykala
7df893177c Merge branch 'master' into fs_emboss
# Conflicts:
#	src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp
2021-09-14 09:50:19 +02:00
Vojtech Bubnik
ec976cbe05 Fixed unit tests after cab71073a1 2021-09-13 15:45:33 +02:00
Lukáš Hejl
e520454c3e Fixed unit tests after the previous commit. 2021-09-11 00:54:30 +02:00
Filip Sykala
9d52ceee44 Choose font by wxWidgetDialog 2021-09-09 19:36:51 +02:00
Filip Sykala
84488ba6df Enumerate fonts 2021-09-03 12:22:44 +02:00
Filip Sykala
d45ab1c484 Fix trouble case test 2021-09-02 11:17:07 +02:00
Filip Sykala
25feacfd95 FIX Creation of non volume place in mode during simplification 2021-09-01 19:15:16 +02:00
Filip Sykala
028f04f8a1 Triangulation of polygons respects its area
- remove its_filtration
Move Flatness out of Font
2021-09-01 11:21:05 +02:00
Filip Sykala
026ad24b64 Convert text to mesh 2021-08-30 22:57:14 +02:00
Filip Sykala
e33c665876 Partial emboss 2021-08-30 10:51:58 +02:00
Filip Sykala
c04856e049 Extend simplify test to chack distance of each triangle center and each vertices. Both simplify to origin and vice versa 2021-08-16 18:04:38 +02:00
Filip Sykala
b90ca142a5 Merge branch 'master' into fs_QuadricEdgeCollapse 2021-08-16 11:56:56 +02:00
Vojtech Bubnik
965c2f2c55 Improved error reporting when importing various configuration files:
1) Slic3r::RuntimeError was replaced with ConfigurationError,
   all exceptions thrown by the configuration layer are derived
   from ConfigurationError.
2) When parsing configuration files, ConfigurationError is catched and
   rethrown extended with the file name being parsed.
2021-08-13 13:37:24 +02:00
Filip Sykala
ef5c94f90a Fix: prevent degeneration of model during simplification 2021-08-06 15:11:20 +02:00
Filip Sykala
6bcc576b5f truncate model name 2021-07-21 08:34:43 +02:00
Filip Sykala
25a4887075 QEC: When collapsing edge flip normal than check other edges in triangle
Quadric is calculated with double precission of normal
Fix calculation of normal for changed triangles
2021-07-19 15:46:41 +02:00
Filip Sykala
86a3fd00a5 Merge branch 'master' into fs_QuadricEdgeCollapse 2021-07-19 09:18:55 +02:00
Filip Sykala
af526c54f4 Add simplification GUI 2021-07-19 09:17:50 +02:00
tamasmeszaros
db782b01a5 Fix build on gcc8 2021-07-16 16:40:59 +02:00
Filip Sykala
aca93a7ced Merge branch 'master' into fs_QuadricEdgeCollapse 2021-07-09 14:14:54 +02:00
Vojtech Bubnik
3a9857e493 Our friendly GCC does not consider std::pair<int, int> trivially
copiable either, while everybody else does. Shame on GCC.
2021-07-09 14:05:30 +02:00
Vojtech Bubnik
d8a0b11157 GCC does not consider std::pair<std::pair<...>, ...> to be trivially
copiable, thus fixing the unit tests with a custom trivially
copyable type.
2021-07-09 13:58:54 +02:00
Filip Sykala
b2238834fb Merge branch 'master' into fs_QuadricEdgeCollapse 2021-07-09 13:40:58 +02:00