69449781ce
Improvement in mesh slicing:
...
Hole fill is disabled in 3D,
and maximum 2mm gaps are closed at 2D by a greedy algorithm.
2018-10-03 13:24:14 +02:00
a744ed7897
Merge remote-tracking branch 'origin/vb_slicing_fix'
2018-09-14 15:08:07 +02:00
86b67bbd42
Lay flat - rotation is now done in one go directly about the necessary axis
2018-08-21 15:40:11 +02:00
b0dd328fde
Lay flat - icons and invalidation improvement
2018-08-20 11:27:25 +02:00
f9efcc36b6
Lay flat gizmo improvements - merge adjacent faces, compute and cache convex hull for entire ModelObject, refresh when moved, etc.
2018-08-17 15:40:47 +02:00
3f72ca2a15
Merge remote-tracking branch 'origin/convex_hull' into lm_lay_flat_round_merged_facets
2018-08-16 08:56:18 +02:00
4d98d32199
Use of bounding box of rotated 3D convex hull for out of print volume detection
2018-08-15 12:50:06 +02:00
13ce087606
Another improvement in robustness of mesh slicing.
2018-08-10 17:37:09 +02:00
b67f32a94d
Slicing improvement for slicing degenerated meshes:
...
Add edges of parallel folded horizontal faces into the output contours,
but ignore them when taking seeds for contour extraction.
FIXME: Single vertices touching a plane are not handled correctly,
they create zero length edges.
2018-08-10 14:10:28 +02:00
0ea4557632
Improved accuracy of slicing (triangle cutting) code,
...
improved debugging outputs and asserts of the slicing code.
Disabled detection of concave corners with horizontal faces,
as too often there were found models with badly triangulated faces,
see for example GH issue #895 .
2018-08-09 21:15:49 +02:00
a06b6716ea
First naive implementation of TriangleMesh convex hull calculation
2018-08-09 16:35:28 +02:00
00e9f07a03
Improved robustness of slicing when the slicing plane
...
crosses a horizontal plane of an object exactly.
Should improve Github issues #831 , #895 , #1102
2018-08-08 16:24:10 +02:00
d19b1162b3
Fixed normals on wipe tower box
2018-05-03 11:09:13 +02:00
1b23f9cd6e
Fixing compilation errors: A non-const reference does not accept
...
a temporary variable.
2018-03-16 10:04:42 +01:00
4f0c6dd879
Reworked the fix of #784 for efficiency and robustness:
...
First, the same direction segments are chained as before, but this time
the remaining open polylines are collected to be processed in the 2nd step.
Second, the remaining open polylines are connected by a greedy algorithm
disregarding their original orientation. As the orientation of loops
created by the 2nd step is mixed, the orientation of these loops is
unknown, therfore a CCW orientation is enforced. The CCW heuristics
may fill holes and cavities, but no outer geometry will be lost.
2018-03-15 17:14:13 +01:00
1ae8684af1
Modified TriangleMeshSlicer::make_loops() to fix #784
2018-03-13 13:32:50 +01:00
0ec68eb35b
Fix for issue #661 (ExPolygons generation)
2018-02-28 11:41:04 +01:00
68c51be130
Merge remote-tracking branch 'remotes/origin/mesh_repair'
2018-02-23 14:38:37 +01:00
1489b9901b
Added workaround into admesh stl_fix_normal_directions() function to prevent meshes to be broken by the repairing process ( fixes #716 , #574 , #413 , #269 , #262 , #259 , #230 , #228 , #206 )
2018-02-15 16:10:47 +01:00
475f892413
3mf Importer - 1st installment
2018-01-30 09:27:10 +01:00
d34f3ffc83
Fix for #574 , #413 , #269 , #262 , #259 , #230 , #228 , #206
2018-01-18 09:15:04 +01:00
ee645007f2
Another step towards C++ presets.
2017-10-25 12:53:31 +02:00
98408bbed0
Fixed a crash when slicing leads to no print.
...
Fixed a bug in TriangleMesh::bounding_box().
2017-09-12 16:48:44 +02:00
31085fb1d7
Ported some ModelObject methods from Perl to C++.
...
Added some utility functions to TriangleMesh, thanks to @alexrj
Some porting to C++ based on work by @alexrj.
2017-08-02 16:05:18 +02:00
b724d789fd
New feature: Splitting an object into a multi-part volume.
2017-06-15 15:38:15 +02:00
f408f08850
Disabled the new Slic3r version check until we have a server set up
...
for the Slic3r Prusa Edition.
Hopefully a fix of https://github.com/prusa3d/Slic3r/issues/258
by moving the 2D thumbnail generation to the main thread and
forcing the simple 2D convex hull for even the small objects.
2017-06-12 14:25:35 +02:00
329f0b9cf4
Debugging output and asserts for TriangleMeshSlicer::slice().
2017-04-05 08:57:37 +02:00
a956186c76
Parallelized TriangleMeshSlicer::make_expolygons
2017-03-08 21:55:38 +01:00
1e6cf0cd98
TriangleMeshSlicer
...
replaced the vectors of vectors by vectors of indices to a continuous memory,
using binary search to get to an index.
2017-03-08 09:47:32 +01:00
edd7cabf68
Trace TriangleMeshSlicer at loglevel debug (nr. 4)
2017-03-07 22:50:32 +01:00
cb1a6eae1e
Added dependencies on the Intel Thread Building Blocks.
...
Changed the C++ parallelization code to Intel Thread Building Blocks.
2017-03-07 13:03:14 +01:00
d20a9d73d4
Fix for OSX: clang requires the member operator< and == to be const.
2017-03-05 16:34:16 +01:00
1909c75c21
TriangleMeshSlic3r used unordered_map, which was terribly horribly shamelessly
...
slow on mingw. Rewrote using std::vector<>, which is blazing fast.
2017-03-03 17:36:07 +01:00
4de33effdc
Tracing of TriangleMesh repair.
2017-03-03 13:31:51 +01:00
4d00aa1800
More tracing of the slicing process.
2017-03-03 12:53:05 +01:00
1b89c08bfc
TriangleMesh.cpp/h:
...
New methods: has_multiple_patches(), number_of_patches()
Improved constness of file access methods.
Reduced some memory allocations costs.
Fixed some crashes of the cut() method on invalid meshes, Slic3r crashes on the unstable triangulation now.
Documented.
2017-02-26 22:17:39 +01:00
c575a1f1d6
Added make_sphere, generates a mesh with specified step angle and raidus rho.
2017-02-21 16:29:09 +01:00
f44df28a96
Fixed mesh generation to generate cylinders.
2017-02-21 16:10:54 +01:00
b91b98b21e
Added prototype make_cylinder()
2017-02-21 16:10:38 +01:00
3bb237deee
Added new constructor to TriangleMesh that accepts vectors of Points and make_cube function to make a new simple cube mesh.
2017-02-21 16:10:14 +01:00
6582182e0c
Adapted to the new ClipperUtils.hpp interface by @alexrj
2016-12-13 19:22:23 +01:00
333a0b1c0e
Shortcuts for zero mesh transformations.
2016-12-12 15:52:04 +01:00
73ddd3b438
Refactored parallelization code, cherry picked from @alexrj 36789774471a0bf9a66bb33cc3ab6984f8ede8c6
2016-12-08 14:40:47 +01:00
70a9de085b
Parallelize TriangleMeshSlicer::slice(), cherry picked from @alexrj 83ad123d951c6ee663d2f3b02e095c203ca794e7
2016-12-08 14:28:09 +01:00
e6d802a5ff
Fixed a 64bit compatiblity in admesh, fixed a typo in TriangleMesh::swap()
2016-11-15 17:22:00 +01:00
95ede7c4b8
Rewrote Fill2.pm to C++, deleted Perl infills for good.
...
Removed dependency on Perl Math::PlanePath module.
Fixed compilation with Visual Studio and SLIC3R_DEBUG: Visual Studio older than 2015 does not support the prinf type specifier %zu. Use %Iu instead.
C++11 move semantics enabled.
2016-11-02 10:47:00 +01:00
f767ce816b
Optimized and improved rectilinear fill.
2016-04-13 20:45:44 +02:00
3ba625da22
Revert incorrect checkins.
2016-04-11 17:34:15 +02:00
7da68c91a5
Vojtech likes to use Sublime on Windows to get the wheels rolling.
2016-04-11 17:05:58 +02:00
70e8db8a0a
Minor code cleanup here and there
2015-12-19 20:27:04 +01:00