Commit graph

954 commits

Author SHA1 Message Date
bubnikv
74b95e9152 Adapted BoundingBox get_extents(const ExPolygons &expolygons)
to work even with empty polygons.
2017-04-05 09:52:06 +02:00
bubnikv
555560f63c Simplification, C++11 beautification. 2017-04-05 09:51:03 +02:00
bubnikv
ef2cfdb0d1 C++11 beautification of loops. 2017-04-05 08:59:03 +02:00
bubnikv
47543cf82a Operator< for Point 2017-04-05 08:57:59 +02:00
bubnikv
329f0b9cf4 Debugging output and asserts for TriangleMeshSlicer::slice(). 2017-04-05 08:57:37 +02:00
bubnikv
bd9ee88e2f Fix of https://github.com/prusa3d/Slic3r/issues/214
Dent in perimeters around a hole

Clipper Offset has been extended to remove tiny edges before the offset.
This is important as the tiny edges pose difficulty
for normal calculation, leading to various adverse effects like
kinks and dents in the offsetted contour.
2017-04-04 11:17:25 +02:00
bubnikv
70fcedb113 Fix of https://github.com/prusa3d/Slic3r/issues/232
Single layer of sparse support above dense support before model
2017-04-04 09:57:54 +02:00
bubnikv
1719952f49 Fixing "opening an obj file causes Slic3r to become stuck and use 100% on one core" #221
Extended the OBJ parser to triangulate quads. Higher order polygons are not supported though.
2017-04-03 10:05:22 +02:00
bubnikv
5dc899d64e Reset wipe moves on tool change and on travel. 2017-03-29 17:45:38 +02:00
bubnikv
4bbb1f4b63 Rewrote next_highest_power_of_2 as a template as OSX had issues with
the previous implementation.
2017-03-28 18:02:26 +02:00
bubnikv
3ebf0ce7fd Improved memory allocation efficiency of the 3D path preview generator. 2017-03-28 17:09:57 +02:00
bubnikv
1fb302d480 Reverted due to a failing test t\multi.t 2017-03-28 14:29:27 +02:00
bubnikv
40b75f6cee Snapped the bottom interface layer print heights to the top interface
layer print heights to avoid too thin layer surfaces. The minimum layer
height at the nozzle page is maintained for the support layers.

Base layers are trimmed by the briding bottom surfaces.
2017-03-28 13:46:31 +02:00
bubnikv
9f7a5c7a6f Some beautification and C++11 adaptation. 2017-03-28 13:25:10 +02:00
bubnikv
640698d28b Fixing Zero extrusion print moves and overlapping regions in first layer
https://github.com/prusa3d/Slic3r/issues/184

No E distances generated when support is selected. bug?
https://github.com/prusa3d/Slic3r/issues/175
2017-03-27 14:34:07 +02:00
bubnikv
0dae43e4bc Bugfix: when the Voronoi diagram contained very large coordinates we need to check whether they are greater than our allowed range and consider the Voronoi edges infinite in those cases, in order to prevent overflows.
https://github.com/alexrj/Slic3r/issues/3776
9ad1360e44
2017-03-24 09:32:30 +01:00
bubnikv
9e0a690d2e Simplified the skirt paths. 2017-03-23 12:35:00 +01:00
bubnikv
ed495663e8 Support generator parallelized. 2017-03-22 15:35:50 +01:00
bubnikv
04cd474708 Fixed some instance of simplify_polygons() invocation.
Geometry::deg2rad() made a template.
Some methods of Layer made inline.
Added a helper template remove_nulls().
2017-03-22 15:35:09 +01:00
bubnikv
7f7d2da5fe Use Vertex Buffer Objects for rendering of 3D volumes if possible. 2017-03-16 14:02:28 +01:00
bubnikv
d18e10c7c9 Rewrote the OpenGL object rendering to indexed triangle / quad sets
for lower memory consumption.
Rewrote the print path 3D preview to generate these indexed triangle / quad
sets, possibly with at least as possible duplication of vertices,
with a crease angle of 45 degrees, leading to maximum 8% overshoots
at the corners.
2017-03-15 16:33:25 +01:00
bubnikv
79e6f23fdc code beautification, C++11 loops 2017-03-13 16:03:44 +01:00
bubnikv
c96d794604 BoundingBox, Print - methods inlined, added const accessors. 2017-03-13 16:03:11 +01:00
bubnikv
e6fddd364d Volume rewritten from Perl to C++,
generation of vertex arrays from paths rewritten from Perl to C++,
parallelized.
2017-03-13 16:02:17 +01:00
bubnikv
50976e1b5a Parallelized slices_to_fill_surfaces_clipped() 2017-03-08 23:02:27 +01:00
bubnikv
720459183e Parallelized detection of extra perimeters. 2017-03-08 22:38:08 +01:00
bubnikv
a956186c76 Parallelized TriangleMeshSlicer::make_expolygons 2017-03-08 21:55:38 +01:00
bubnikv
4426e47e2a Fixed a race condition in the parallelization
of the "ensure vertical wall thickness" feature.
2017-03-08 18:10:39 +01:00
bubnikv
20796b89c1 Improved debugging of slicing. 2017-03-08 15:58:40 +01:00
bubnikv
798bca561b Parallelized the slow discover_vertical_shells() 2017-03-08 14:54:04 +01:00
bubnikv
f200781436 C++ compiler suppressed default constructor and assignment operator
for Surface after the move operators were implemented. Added
those operators manually.
2017-03-08 14:22:49 +01:00
bubnikv
52b76930aa Simplify_slices rewritten to C++, parallelized.
Added some move methods to Surface class.
2017-03-08 13:43:49 +01:00
bubnikv
4331f38912 Fixing of slicing errors ported to C++, parallelized. 2017-03-08 11:56:42 +01:00
bubnikv
73439b7acb Parallelized PrintObject::_slice(), make_slices() code. 2017-03-08 10:37:47 +01:00
bubnikv
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
bubnikv
edd7cabf68 Trace TriangleMeshSlicer at loglevel debug (nr. 4) 2017-03-07 22:50:32 +01:00
bubnikv
dfba2cb6b2 Parallelized PrintObject::detect_surfaces_type() 2017-03-07 21:46:45 +01:00
bubnikv
65c024f7cf Parallelize PrintObject::process_external_surfaces() 2017-03-07 17:43:43 +01:00
bubnikv
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
bubnikv
8a42c0ad9f Implementation of scaling factor of objects into an AMF file.
https://github.com/prusa3d/Slic3r/issues/7
2017-03-06 17:35:38 +01:00
bubnikv
d20a9d73d4 Fix for OSX: clang requires the member operator< and == to be const. 2017-03-05 16:34:16 +01:00
bubnikv
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
bubnikv
a219ae3d27 Set boost tracing level on DLL initialization to errors only. 2017-03-03 14:38:25 +01:00
bubnikv
4de33effdc Tracing of TriangleMesh repair. 2017-03-03 13:31:51 +01:00
bubnikv
4d00aa1800 More tracing of the slicing process. 2017-03-03 12:53:05 +01:00
bubnikv
4287362aa6 Extended tracing of the slicing process. 2017-03-02 16:52:24 +01:00
bubnikv
d430767fa7 Define a surface type count constant to be able to address a vector
with a surface type.
2017-03-02 16:42:26 +01:00
bubnikv
83a80a9b7d Optimization of LayerRegion::slices_to_fill_surfaces_clipped()
Added some run time tracing through boost::log.
2017-03-02 16:41:16 +01:00
bubnikv
73f603d90e Fix of #117: A large fractal pyramid takes ages to slice
The Clipper library has difficulties processing overlapping polygons.
Namely, the function Clipper::JoinCommonEdges() has potentially a terrible time complexity if the output
of the operation is of the PolyTree type.
This function implmenets a following workaround:
1) Peform the Clipper operation with the output to Paths. This method handles overlaps in a reasonable time.
2) Run Clipper Union once again to extract the PolyTree from the result of 1).
2017-03-02 16:39:43 +01:00
bubnikv
07fa15806f Utility function SVG::export_expolygons() to paint a set of possibly
overlapping ExPolygons with attributes.
2017-03-02 16:32:43 +01:00