Commit Graph

59 Commits

Author SHA1 Message Date
enricoturri1966
520261925f Fixed conflicts after merge with master 2022-07-21 08:14:44 +02:00
Lukas Matena
6c0db58628 Fixing conflicts part 4:
See previous commit. This one applies changes from master_250
to the files mentioned
2022-06-29 16:43:29 +02:00
Lukas Matena
d662bf2a18 Fixing conflicts part 3:
Some files have whitespace changes that make resolving conflicts difficult.
Take the version from master first, next commit will apply changes from master_250
2022-06-29 16:43:29 +02:00
Lukas Matena
b61714bb3e Merge branch 'master_250' (NO CONFLICTS FIXED):
CONFLICT (content): Merge conflict in resources/profiles/PrusaResearch.idx
CONFLICT (content): Merge conflict in resources/profiles/PrusaResearch.ini
CONFLICT (content): Merge conflict in src/libslic3r/CMakeLists.txt
CONFLICT (content): Merge conflict in src/libslic3r/Fill/Fill.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode.hpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/GCodeProcessor.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/GCodeProcessor.hpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/SeamPlacer.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/SeamPlacer.hpp
CONFLICT (add/add): Merge conflict in src/libslic3r/Geometry/Curves.hpp
CONFLICT (content): Merge conflict in src/libslic3r/PerimeterGenerator.cpp
CONFLICT (content): Merge conflict in src/libslic3r/Point.hpp
CONFLICT (content): Merge conflict in src/libslic3r/PrintConfig.hpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/ConfigWizard.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GCodeViewer.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GLCanvas3D.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GUI_App.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp
CONFLICT (content): Merge conflict in src/slic3r/Utils/FixModelByWin10.cpp
CONFLICT (modify/delete): t/perimeters.t deleted in HEAD and modified in master_250.  Version master_250 of t/perimeters.t left in tree.
CONFLICT (content): Merge conflict in tests/fff_print/CMakeLists.txt
CONFLICT (content): Merge conflict in tests/fff_print/test_fill.cpp
CONFLICT (content): Merge conflict in version.inc
CONFLICT (modify/delete): xs/xsp/PerimeterGenerator.xsp deleted in HEAD and modified in master_250.  Version master_250 of xs/xsp/PerimeterGenerator.xsp left in tree.
2022-06-29 14:37:14 +02:00
enricoturri1966
cd6155293b Fixed conflicts after merge with master 2022-06-07 11:10:19 +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
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
Lukáš Hejl
556e2b71cc Initial port of Arachne from Cura. 2022-06-01 21:40:13 +02:00
Lukáš Hejl
bbb7e839a0 Fixed various issues in the ported Lightning infill.
Added export to SVG for TreeNode.
Also was finalized integration of Lightning infill and Lightning infill was enabled.
2022-06-01 21:35:58 +02:00
enricoturri1966
3df99ab974 Tech ENABLE_GL_CORE_PROFILE set as default into Point.hpp 2022-05-26 11:39:53 +02:00
enricoturri1966
914a66e2c3 Tech ENABLE_GL_CORE_PROFILE - Thick lines shader enhanced to render dashed lines
Fixed conflicts while rebase with master
2022-05-26 08:11:04 +02:00
PavelMikus
396d3215bd Refactoring of curve fitting algorithm:
removal of artificial extension at the ends of the curve
removal of observation points normalization
added clamping of parameter index which compensates for under-represented spline segments
added parameter for level of freedom at the ends of the curve
2022-04-25 12:42:51 +02:00
Vojtech Bubnik
bd8ce6fabd Follow-up to 9cb51caead9dee5c4d12a4ef5f925b5efeb00b75
Fixing compilation on GCC
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
Lukáš Hejl
0c4df47bd0 Fixed various issues in the ported Lightning infill.
Added export to SVG for TreeNode.
Also was finalized integration of Lightning infill and Lightning infill was enabled.
2022-03-16 23:37:05 +01:00
Vojtech Bubnik
e8697d2fc2 WIP Cura Lightning infill, initial port. 2021-12-01 16:45:04 +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
fec5d92bc8 Added various has_duplicate_points() checks, to be used by asserts.
Removed some "extern" function modifiers, they have no meaning in C++.
2021-09-24 14:07:46 +02:00
Vojtech Bubnik
7e3306c68f Fixed triangulation of meshes split by the cut tool. 2021-09-21 11:07:40 +02:00
tamasmeszaros
c4507842a0 Add new (winner) neighbor index based on measurements 2021-06-08 10:34:32 +02:00
tamasmeszaros
c8be2cdceb Added measuring sandbox for neighbors index creation 2021-06-08 10:34:32 +02:00
Vojtech Bubnik
033d9f3a5e Merge remote-tracking branch 'remotes/origin/master' into vb_print_regions 2021-05-31 14:05:53 +02:00
Lukas Matena
fd024eadcd Removed gluProject and gluUnProject calls 2021-05-28 16:44:13 +02:00
Vojtech Bubnik
0d081c90f0 Merge remote-tracking branch 'remotes/origin/master' into vb_print_regions 2021-05-26 14:38:34 +02:00
Vojtech Bubnik
e658fe0698 WIP: PrintRegion refactoring, it finally compiles!
Config/PrintConfig refactoring to support operator< for StaticPrintConfig
derived containers.
2021-05-24 14:10:04 +02:00
Lukas Matena
c5c6f51ae0 Fixed third batch of locale-dependent calls 2021-05-24 12:20:29 +02:00
Vojtech Bubnik
7112ac61b6 Replacing ClipperLib::IntPoint with Eigen point as a first step to
make the ClipperLib paths and polygons compatible with Slic3r paths
and polygons without conversions and memory allocations.
2021-04-14 09:22:51 +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
Vojtech Bubnik
5276bd98d7 WIP: MutablePolygon - linked list based polygon implementation
allowing rapid insertion and removal of points.
WIP: porting smooth_outward() from Cura.
2021-03-01 18:41:46 +01:00
Vojtech Bubnik
a116914fce WIP VoronoiOffset: Squash merge of vb_voronoi_offset
Working contour offsetting,
skeleton_edges_rough() to detect "important" skeleton edges.
Radius of an inscribed circle along the "important" skeleton edges
changes slowly, therefore these "important" skeleton edges signify
oblong regions possibly needing a gap fill.
2021-01-29 16:34:22 +01:00
Vojtech Bubnik
84693a5810 New get_extents(const std::vector<Points> &pts),
refactored Lian Barsky line clipping
2020-11-16 10:20:47 +01:00
Vojtech Bubnik
4d102ac8ca FillAdaptive:
1) More accurate trimming of an anchor with another infill line
   or by another anchor line.
2) Trimming of very short infill lines, which are not anchored,
   by another infill lines.
2020-11-11 16:49:11 +01:00
Vojtech Bubnik
decda76344 AdaptiveInfill:
1) Shortening the anchor lines when touching another infill line
   to avoid over extrusion.
2) Reduction of the Intersection structure complexity by referencing
   the source lines.
2020-11-10 15:54:32 +01:00
Vojtech Bubnik
89df9c1038 Improvement of AdaptiveFill:
1) Merging of collinear infill lines separated by a thin gap created
   by trimming with the boundary polygon.
2) Sorting of the T-joints separately to the left / right of the common
   line.
3) Trimming self intersections of the anchor lines.
4) Dropping of very short segments, not anchoring short segments.
2020-11-10 13:56:12 +01:00
Vojtech Bubnik
239d588c5d 1) Implemented anchoring of infill lines to perimeters with length
limited anchors, while before a full perimeter segment was always
   taken if possible.
2) Adapted the line infills (grid, stars, triangles, cubic) to 1).
   This also solves a long standing issue of these infills producing
   anchors for each sweep direction independently, thus possibly
   overlapping and overextruding, which was quite detrimental
   in narrow areas.
3) Refactored cubic adaptive infill anchroing algorithm
   for performance and clarity.
2020-11-05 17:32:40 +01:00
Vojtech Bubnik
37c5fe9923 Refactoring of adaptive cubic / support cubic:
1) Octree is built directly from the triangle mesh by checking
   overlap of a triangle with an octree cell. This shall produce
   a tighter octree with less dense cells.
2) The same method is used for both the adaptive / support cubic infill,
   where for the support cubic infill the non-overhang triangles are
   ignored.
The AABB tree is no more used.
3) Optimized extraction of continuous infill lines in O(1) instead of O(n^2)
2020-09-17 18:39:28 +02:00
tamasmeszaros
5052149b81 Fix build on msvc 2020-08-18 13:45:18 +02:00
tamasmeszaros
4ef52af906 Add dedicated tests for support point generation 2020-08-18 11:41:14 +02:00
tamasmeszaros
7b6565abeb Improvements on mini pillars 2020-08-03 19:05:30 +02:00
Vojtech Bubnik
7b6dff3f03 Little simplification of Point to boost::polygon bindings 2020-05-22 09:29:21 +02:00
Lukas Matena
8afc9338de Merge branch 'lm_fdm_custom_supports_backend' 2020-04-24 15:16:33 +02:00
tamasmeszaros
8c04536514 Integrate scaling and unscaling into Point.hpp 2020-04-23 18:17:50 +02:00
Lukas Matena
79ef456d7c Fixed the algorithm so it works for horizontal triangles
Partial code cleanup
2020-04-21 01:39:40 +02:00
bubnikv
c27297f6cc 64bit coord_t
Vec3i as a vertex index to TriangleMesh constructor
2020-03-25 14:35:41 +01:00
bubnikv
c99e7cb0df Ported test_trianglemesh from upstream slic3r, thanks @lordofhyphens 2019-10-15 13:49:28 +02:00
bubnikv
42a858b999 Added test projects for libslic3r and fff_print.
Added test_geometry.cpp from upstream slic3r, thanks @lordofhyphens
Added circle_taubin_newton() for circle center calculation, thanks @lordofhyphens
2019-10-15 09:40:40 +02:00
bubnikv
9fd0c55eb8 Simplified the "cereal" includes to not clash with Perl includes 2019-07-04 22:09:14 +02:00
bubnikv
d99e932ee8 WIP Undo / Redo: Serialization of the Model / ModelObject / Model instance
using the cereal framework.
2019-06-26 16:29:12 +02:00
bubnikv
6526a8fcaf WIP: Transformation of instances in world coordinate space:
Ulocking the "anisotropic" scaling checkbox will bake the transformation
into meshes to allow for scaling in world axes.

Optimized and templated the stl_transform functions, now also available for 3x3 matrices.
The Canvas3D::reload_scene() now maintains selection even if all volumes of an instance changed their IDs.
2019-04-26 17:28:31 +02:00