92 Commits

Author SHA1 Message Date
Filip Sykala - NTB T15p
211146e5de Fix calculation of up vector angle. 2023-09-27 14:37:00 +02:00
Filip Sykala - NTB T15p
ca71305c75 Merge branch 'master' into fs_svg
# Conflicts:
#	src/slic3r/Utils/EmbossStylesSerializable.cpp
#	src/slic3r/Utils/EmbossStylesSerializable.hpp
2023-09-04 13:33:22 +02:00
ps_copyright
f32859c302 final copyright headers 2023-09-01 14:49:07 +02:00
Filip Sykala - NTB T15p
5de06a9ef8 Merge branch 'master' into fs_svg 2023-06-02 10:53:47 +02:00
Vojtech Bubnik
9cde96993e Reworked the ClipperLib / Polygon types to use
the tbb::scallable_allocator to better scale on multiple threads.
2023-04-20 11:31:44 +02:00
Filip Sykala - NTB T15p
382a0fe1e3 Merge branch 'master' into fs_svg
# Conflicts:
#	src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp
#	src/slic3r/GUI/Gizmos/GLGizmoEmboss.hpp
#	src/slic3r/GUI/Jobs/EmbossJob.cpp
#	src/slic3r/GUI/Jobs/EmbossJob.hpp
#	src/slic3r/GUI/SurfaceDrag.cpp
2023-04-06 08:25:20 +02:00
enricoturri1966
373ae1e19d Tech ENABLE_WORLD_COORDINATE set as default 2023-03-08 11:52:17 +01:00
Filip Sykala - NTB T15p
a5ea46a83a Add SVG gizmo - buildable 2023-03-07 16:47:12 +01:00
Vojtech Bubnik
906671fbba Follow-up to 33496449645c8d2a1f2bd8cfb651862a86682385
Reworked handling of approximate / snug bounding boxes
at Model / ModelObject / PrintObject
Further optimized, so that the bounding boxes are not recalculated
unnecesarilly.
2023-02-28 14:48:31 +01:00
Vojtech Bubnik
217708e812 Fixing the transformation resets. 2023-02-07 15:44:58 +01:00
enricoturri1966
d98fd64534 Method Transformation::reset_rotation() modified to use SVD decomposition of transformation matrix and object manipulator reset button set to use it 2023-02-02 12:40:28 +01:00
enricoturri1966
f2b986af57 Method Transformation::reset_scaling_factor() modified to use SVD decomposition of transformation matrix and object manipulator reset button set to use it 2023-02-02 11:42:21 +01:00
enricoturri1966
22ccb56578 Added class TransformationSVD to detect transformation matrix components using singular value decomposition 2023-02-02 09:07:03 +01:00
tamasmeszaros
7fd5fa3aa6 Fix assert when adding object in SLA 2023-01-26 14:07:24 +01:00
enricoturri1966
643d50813d Removed function double rotation_diff_z(const Vec3d &rot_xyz_from, const Vec3d &rot_xyz_to) and remaining code using it 2023-01-26 10:00:35 +01:00
Vojtech Bubnik
a784be24e7 Follow-up to 842229842f7fe7ce48215d6cfe55aaf4b46cfe56
WIP Synchronization of mirroring
Fixed mirroring at the FDM and SLA back-end.
2023-01-25 18:51:53 +01:00
Vojtech Bubnik
842229842f WIP Synchronization of mirroring 2023-01-25 15:46:22 +01:00
enricoturri1966
af509a7f74 Fixed build when tech ENABLE_WORLD_COORDINATE is disabled 2022-11-24 09:38:51 +01: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
tamasmeszaros
a55be29568 Fix failing tests for merge point search
Improvements and comments to find_merge_pt
2022-07-29 13:05:39 +02:00
enricoturri1966
ca34518bcc Fixed conflicts after merge with master 2022-07-21 08:55:52 +02:00
tamasmeszaros
d23f9d7674 Refactoring and performance optimization for support trees in SLA 2022-06-29 10:43:46 +02:00
enricoturri1966
cfc3988b9f Tech ENABLE_RAYCAST_PICKING - 1st installment - Raytraced picking of printbed 2022-06-10 13:20:52 +02:00
enricoturri1966
c99e93c357 Fixed differences after rebase with master 2022-06-06 14:55:38 +02:00
enricoturri1966
00878fb330 Tech ENABLE_TRANSFORMATIONS_BY_MATRICES merged into ENABLE_WORLD_COORDINATE
Fixed conflicts during rebase with master
2022-06-06 13:36:29 +02:00
enricoturri1966
e3d648c802 Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - Reoworked calculation of volume matrix for newly added modifiers and parts
Fixed conflicts during rebase with master
2022-06-06 12:16:17 +02:00
enricoturri1966
19712749c3 Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - Added reset button to remove skew, when detected, in object manipulator panel
Fixed conflicts during rebase with master
2022-06-06 10:00:28 +02:00
enricoturri1966
88ce6ccdef Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - Reworked method void Selection::scale(const Vec3d& scale, TransformationType transformation_type) to use matrix multiplication
Fixed conflicts during rebase with master
2022-06-06 09:54:19 +02:00
enricoturri1966
9f503b95e8 Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - Reworked method void Selection::rotate(const Vec3d& rotation, TransformationType transformation_type) to use matrix multiplication
Fixed conflicts during rebase with master
2022-06-03 15:44:45 +02:00
enricoturri1966
2f6f73e10f Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - Reworked method void Selection::translate(const Vec3d& displacement, ECoordinatesType type) to use matrix multiplication
Fixed conflicts during rebase with master
2022-06-03 14:56:07 +02:00
enricoturri1966
7e72963293 Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - 1st installment. Geometry::Transformation modified to store data in a single matrix, without store the matrix components
Fixed conflicts during rebase with master
2022-06-03 13:58:36 +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
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
enricoturri1966
bcaa0d38bd Fixed uninitialized variables reported by MemorySanitizer in Geometry::Transformation 2022-01-21 11:26:44 +01:00
enricoturri1966
9af9b9b35d Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS set as default 2021-11-16 12:39:54 +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
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
Vojtech Bubnik
be236eda85 Renamed Geometry::intersect() to Geometry::convex_polygons_intersect()
to convey its true meaning.
2021-10-23 15:29:18 +02:00
enricoturri1966
a9ca63d344 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_sinking_objects_collision 2021-10-04 15:04:34 +02:00
tamasmeszaros
4cc1b2740d Don't report intersection if two polygons are only touching. 2021-10-04 14:16:13 +02:00
enricoturri1966
5739178306 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_sinking_objects_collision 2021-10-04 13:07:53 +02:00
tamasmeszaros
9fce0ce3a6 Fix compile issues and overlapping polygon fails 2021-10-01 18:27:37 +02:00
enricoturri1966
f3bd5e96c5 Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Fixed detection of collision with circular printbed in backend 2021-10-01 07:28:10 +02:00
Lukas Matena
476b48ed11 Revert "Merge branch 'tm_convex_intersect_rotcalip'"
This reverts commit 627d8bcaefb3c46864324554f663403495d9ef43, reversing
changes made to 66d44627248b8e412143298541b5a8397f8a0af5.

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
enricoturri1966
7cfe082621 Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Enable detection of collision with circular printbed for toolpaths 2021-09-30 12:08:05 +02:00
enricoturri1966
cf380fb456 Tech ENABLE_OUT_OF_BED_DETECTION_IMPROVEMENTS - Out of bed detection for circular printbeds 2021-09-21 13:51:57 +02:00
Vojtech Bubnik
8d0950ce12 Convincing ClipperLib to use Slic3r's own Point type internally. 2021-04-21 20:15:49 +02:00
Vojtech Bubnik
8fd731f7a0 New FDM support sparse infill zig-zag algorithm.
Fixed some old support and infill issues.

Fixes support problem #4295
Fixes Parts of interface layer extends beyond supports and cannot be printed
Fixes support missing under horizontal overhang #6058
Fixes Slicer double-traces small sections of Rectilinear Supports, causes
Fixes plastic buildup and nozzle crashes #4951
Fixes Add "Angle Interface layers" #2969
2021-04-08 15:29:40 +02:00