Commit Graph

501 Commits

Author SHA1 Message Date
Vojtech Bubnik
f5662458a2 Removed polygon simplification "hole in square" unit test,
simplification of CW contours is no more enabled by assert.
2023-01-04 13:38:59 +01:00
Vojtech Bubnik
1a5533d571 PlaceholderParser:
1) Implemented access to coEnum values, they are returned as strings.
2) Fixed some possible memory leaks.
3) Fixed some possible union type punning issues.
2023-01-04 13:38:18 +01:00
Vojtech Bubnik
f828cba5f0 Merge remote-tracking branch 'remotes/origin/master' into vb_ensurovani 2023-01-02 13:19:48 +01:00
Vojtech Bubnik
fde0d68c40 WIP Reworking of "ensure vertical wall thickness".
1) Flipped the order of "discover_vertical_shells" and "process_external_surfaces",
   now the external surfaces are expanded after "discover_vertical_shells"
   aka "ensure vertical wall thickness" is solved.
2) Reworked LayerRegion::process_external_surfaces() to only expand into
   "ensure vertical wall thickness" regions, also the expansion is done
   in small steps to avoid overflowing into neighbor regions.

also:
Utility functions reserve_more(), reserve_power_of_2(), reserve_more_power_of_2()
Various SurfaceCollecion::filter_xxx() modified to accept an initializer list of surface types.
New bridges detector refactored to accept overhang boundaries.
BoundingBoxWrapper was moved from RetractCrossingPerimeters to AABBTreeIndirect.
2023-01-02 13:19:27 +01:00
Vojtech Bubnik
fb85baf889 Ported shells.t unit tests from Perl. 2022-12-23 16:07:09 +01:00
Filip Sykala - NTB T15p
1896dd5761 Disable italic font check for RaspberryPi(aka linux) 2022-12-21 09:02:10 +01:00
Vojtech Bubnik
11c0e567a6 WIP "ensure verticall wall thickness" rework:
1) New region expansion code to propagate wave from a boundary
   of a region inside of it.
2) get_extents() extended with a template attribute to work with
   zero area data sets.
3) ClipperZUtils.hpp for handling Clipper operation with Z coordinate
   (for source contour identification)
2022-12-20 09:09:10 +01:00
Filip Sykala - NTB T15p
043c4c5e90 Fix for RPI build 2022-12-15 13:20:28 +01:00
PavelMikus
f71f8e0472 fix perimeters tests after merge of overhang slowdowns 2022-12-14 16:40:50 +01:00
Pavel Mikus
f730fd21d4 refactoring overhang speed 2022-12-14 14:49:20 +01:00
PavelMikus
dd7777f648 fix tests 2022-12-14 14:49:20 +01:00
tamasmeszaros
b67fe277fc Ease up tolerance for failing SLA test 2022-12-13 10:40:35 +01:00
Lukas Matena
f81382f604 Generic sphere shape is now created by recursive division of an icosahedron 2022-12-08 14:55:32 +01:00
Filip Sykala - NTB T15p
47ca06e53e Merge branch 'master' into fs_emboss 2022-12-05 15:21:04 +01:00
enricoturri1966
6f18f8f784 Tech ENABLE_RAYCAST_PICKING set as default 2022-12-05 10:24:30 +01:00
Filip Sykala - NTB T15p
d5fedd928c Merge branch 'master' into fs_emboss
# Conflicts:
#	src/libslic3r/Point.hpp
2022-11-29 15:11:53 +01:00
Filip Sykala - NTB T15p
b1f9d50aad Rename function: collect_duplications -> collect_duplicates
more english correct name
2022-11-29 13:52:47 +01:00
Vojtech Bubnik
9a682a10cb Merge remote-tracking branch 'remotes/origin/fs_emboss' 2022-11-28 17:46:12 +01:00
Vojtech Bubnik
a98467f661 Merge remote-tracking branch 'remotes/origin/master' into vb_treesupports 2022-11-18 13:26:48 +01:00
Vojtech Bubnik
fe51f77839 Improvements in performance of Medial Axis algorithm.
Fixes Slicing slows or hangs on "Generating Permiters 20%" cpu load is at 100% #8164
Fixes Slicing hangs on generating perimeters with thing:3565827 (30g) #3259
2022-11-16 12:03:31 +01:00
Vojtech Bubnik
db3f696888 Fixed ExPolygon::overlaps(), which was not commutative.
Wrote unit tests for Clipper polyline clipping operations.
Rewrote ExPolygon unit tests from Perl to C++.
2022-11-15 15:32:16 +01:00
Vojtech Bubnik
9dca8403fe ClipperLib: Optimized PointInPolygon() to calculate cross products
with int64s instead of doubles.
Polygon / ExPolygon: contains() reworked to use ClipperLib::PointInPolygon().
	The Slic3r own implementation was not robust.
Fixed test_perimeters after recent refactoring (sorting of extrusions
	into LayerIslands)
2022-11-14 15:17:04 +01:00
Filip Sykala - NTB T15p
c052ff403a Merge branch 'master' into fs_emboss 2022-11-09 14:07:26 +01:00
Pavel Mikuš
633ce8aa21
Pm jps path finding (#8)
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
2022-11-09 13:33:58 +01:00
Filip Sykala - NTB T15p
c77f8373bd Merge branch 'master' into fs_emboss
# Conflicts:
#	src/libslic3r/Technologies.hpp
#	src/slic3r/GUI/GLCanvas3D.cpp
#	src/slic3r/GUI/Gizmos/GLGizmosManager.cpp
#	src/slic3r/GUI/Plater.cpp
#	src/slic3r/GUI/Selection.hpp
2022-11-07 15:44:33 +01:00
Vojtech Bubnik
8858651bf4 WIP Refactoring of Layers: Reworked G-code export to make use
of Layer->LayerSlice->LayerIsland hierarchy. This should improve
tool path ordering of multiple parts within the same object #5511.

Some shells tests rewritten from Perl to C++.

FIXME: Gap fill extrusions are currently not handled by the initial
G-code preview!
2022-11-07 14:47:43 +01:00
Vojtech Bubnik
6e653d9070 Merge remote-tracking branch 'remotes/origin/master' into vb_treesupports 2022-11-02 17:21:36 +01:00
Vojtech Bubnik
409fae6183 WIP Refactoring of Layers: LayerIslands filled in with perimeter
extrusions, gap fill extrusions and fill regions.
2022-11-02 12:59:31 +01:00
Vojtech Bubnik
d041fa6c0c Refactored PerimeterGenerator to output out_fill_surfaces as ExPolygons,
not SurfaceCollection.

Reworked combineinfill.t, 07_extrusionpath.t, 08_extrusionloop.t to c++.
Removed Layer / ExtrusionPath / ExtrusionLoop / ExtrusionEntityCollection
from Perl bindings.
2022-10-27 19:08:43 +02:00
Vojtech Bubnik
237e56c7ce Follow-up to ee626eb65a
Refactored PerimeterGenerator for functional style, better constness
with the goal of calling PerimeterGenerator::process_xxx()
for each surface at once to collect its fill expolygons.
2022-10-27 13:04:52 +02:00
Vojtech Bubnik
ee626eb65a WIP: Layers split into islands, islands overlapping in Z interconnected
into a graph with links to the layer above / below.

In addition:
Members of LayerRegion were made private, public interface const only.
this->m_xxx replaced with just m_xxx
SurfacesPtr was made a vector of const pointers.
2022-10-26 18:41:39 +02:00
enricoturri1966
7ae4472827 Merge branch 'master' of https://github.com/Prusa-Development/PrusaSlicerPrivate into et_surface 2022-10-24 12:57:39 +02:00
Filip Sykala - NTB T15p
a752ccb420 Merge branch 'master' into fs_emboss
# Conflicts:
#	src/libslic3r/Technologies.hpp
#	src/slic3r/GUI/GLCanvas3D.cpp
#	src/slic3r/GUI/Selection.cpp
2022-10-19 19:35:31 +02:00
Vojtech Bubnik
2ced762948 Integrating a C++20 like span library
https://github.com/tcbrindle/span

Replacing a homebrew const pointer wrapper const correctness helper
with the C++20 like span library.

One day when we switch to C++20 we will just use the C++20 spans instead.
2022-10-19 16:27:15 +02:00
Filip Sykala - NTB T15p
8343e81053 Fix test
+ Comment debug output
+ Add was_canceled in cut surface
2022-10-12 19:26:45 +02:00
Filip Sykala - NTB T15p
3fa3ea0bb4 Projection text for cut surface is made with double preccission 2022-10-12 16:17:38 +02:00
Lukas Matena
05e2a831f4 Added some unit tests (SurfaceMesh) 2022-10-12 08:40:34 +02:00
Filip Sykala - NTB T15p
8511b280bf Heal shape with points close to line
(after conversion to floating point it is on the other side of line)
ExPolygons indexing (fixed)
2022-10-11 13:35:52 +02:00
Filip Sykala - NTB T15p
e340fa6abe Merge branch 'master' into fs_emboss
# Conflicts:
#	src/libslic3r/AABBTreeLines.hpp
#	src/libslic3r/ExPolygon.hpp
#	tests/libslic3r/test_aabbindirect.cpp
2022-10-05 15:14:54 +02:00
Pavel Mikus
e02aed31d2 Added new query to AABBTree: all primitives (triangles/lines) within radius 2022-10-05 14:51:32 +02:00
Filip Sykala - NTB T15p
65f8b09876 Merge branch 'master' into fs_emboss 2022-09-30 18:29:57 +02:00
Lukas Matena
49c817c40b Resurrected an old test case for parsing and comparing config version numbers 2022-09-30 13:51:56 +02:00
Filip Sykala - NTB T15p
0e3b7cae12 Merge branch 'master' into fs_emboss
# Conflicts:
#	src/libslic3r/Technologies.hpp
#	src/slic3r/GUI/GLCanvas3D.cpp
2022-09-29 18:47:21 +02:00
Vojtech Bubnik
a44a4505b7 Fixed unit tests. 2022-09-29 14:19:39 +02:00
Filip Sykala - NTB T15p
8f644f5e08 Merge branch 'master' into fs_emboss
# Conflicts:
#	src/slic3r/GUI/GLCanvas3D.cpp
#	src/slic3r/GUI/Selection.cpp
2022-09-23 14:11:47 +02:00
Lukas Matena
70be93d112 Fixed issue with Euler angles:
the function to extract Euler angles did not work reliably in some of the corner cases.
The bug was not present in 2.5.0 release.
2022-09-23 13:23:40 +02:00
Filip Sykala - NTB T15p
c549c6afbe Merge branch 'master' into fs_emboss
# Conflicts:
#	src/libslic3r/CMakeLists.txt
#	src/libslic3r/Format/3mf.cpp
#	src/libslic3r/Model.hpp
#	src/libslic3r/Point.hpp
#	src/libslic3r/Technologies.hpp
#	src/slic3r/CMakeLists.txt
#	src/slic3r/GUI/GLCanvas3D.cpp
#	src/slic3r/GUI/GLSelectionRectangle.cpp
#	src/slic3r/GUI/GUI_Factories.hpp
#	src/slic3r/GUI/Gizmos/GLGizmoBase.cpp
#	src/slic3r/GUI/Gizmos/GLGizmoBase.hpp
#	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/MeshUtils.cpp
#	src/slic3r/GUI/MeshUtils.hpp
#	src/slic3r/GUI/ObjectDataViewModel.cpp
#	src/slic3r/GUI/ObjectDataViewModel.hpp
#	src/slic3r/GUI/Selection.cpp
2022-08-31 15:22:10 +02:00
Filip Sykala - NTB T15p
63121cee2e Better healing for Glyph shape - remove duplicit points + self intersections
Add search of intersecting points (compared with CGAL)
Triangulation can [optionaly] accept multi points
2022-08-25 13:28:10 +02:00
Vojtech Bubnik
3f69643516 Merge branch 'vb_treesupports' 2022-08-23 16:45:34 +02:00
Vojtech Bubnik
7949ea9544 Fixed some compiler warnings.
Removed some implicit type conversions of ExPolygon (to Points, Polylines, Polygons)
Fixed obsolete boost::spirit includes.
2022-08-22 15:14:54 +02:00