Commit Graph

4747 Commits

Author SHA1 Message Date
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
e7a920fe16 Fixed some picking issues after porting GLVolumes to C++.
Initial interface for print paths visualization by VBOs.
2017-03-14 10:11:08 +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
336f86c101 Fixed a newly introduced memory leak into the Clipper library,
made all Clipper interfaces non-virtual.
2017-03-08 20:27:03 +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
b5e45bccf9 Fixed a typo after porting _simplify_slices to C++. 2017-03-08 15:08: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
109013bed7 Yet another fix of the static linking on Windows. 2017-03-07 16:33:36 +01:00
bubnikv
32b0428303 Yet another fix of a static TBB linkage. 2017-03-07 14:50:32 +01:00
bubnikv
a4dea4b7fc Fix of intel TBB linking. 2017-03-07 14:31:08 +01:00
bubnikv
32ebb1e2c7 Fix of a static library extension of the INtel Thread Building Blocks on OSX/Linux. 2017-03-07 14:13:30 +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
c23c0ee7d2 Fix of https://github.com/prusa3d/Slic3r/issues/172 ? 2017-03-06 15:03:31 +01:00
bubnikv
06f82d1db5 No need for Math::Libm 2017-03-06 13:09:23 +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
a9a20003c0 Clipper memory optimization: Own memory manager for OutPt objects.
Allocate OutPt by chunks of 32, reuse the released OutPt objects.
2017-03-03 23:06:51 +01:00
bubnikv
f24427cd76 Another Clipper optimization. When adding a set of paths
to Clipper, allocate the edges in a single continuous vector.
2017-03-03 21:40:40 +01:00
bubnikv
fa4df36963 Fix: Orientation() has been declared inline, therefore not exported. 2017-03-03 20:39:04 +01:00
bubnikv
5580fd64b3 Clipper library:
Added some comments,
some methods were made inline, tiny methods moved to the header as inline,
dynamic allocation replaced with std:: containers,
changed some loops to the condensed C++11 syntax.
2017-03-03 20:38:53 +01:00
bubnikv
fddd7c620f Some optimization of memory allocation, some reduction / inlining of short functions. 2017-03-03 20:38:40 +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
930e6752d9 Reverted unification of positive and negative zeros when loaded
from an STL file.
2017-03-03 12:54:00 +01:00
bubnikv
4d00aa1800 More tracing of the slicing process. 2017-03-03 12:53:05 +01:00
bubnikv
062a6628e5 Revert "Some optimization of memory allocation, some reduction / inlining of short functions."
This reverts commit bc19e97d45.
2017-03-02 20:44:53 +01:00
bubnikv
473624fcd7 Revert "Clipper library:"
This reverts commit 90a415ae10.
2017-03-02 20:44:43 +01:00
bubnikv
cd7134e6f6 Revert "Fix: Orientation() has been declared inline, therefore not exported."
This reverts commit c2ee73d211.
2017-03-02 20:44:28 +01:00
bubnikv
c2ee73d211 Fix: Orientation() has been declared inline, therefore not exported. 2017-03-02 17:34:53 +01:00
bubnikv
90a415ae10 Clipper library:
Added some comments,
some methods were made inline, tiny methods moved to the header as inline,
dynamic allocation replaced with std:: containers,
changed some loops to the condensed C++11 syntax.
2017-03-02 17:11:46 +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
258252cbf3 Shiny Profiler: Disable exponential dumping of the timing data. 2017-03-02 16:35:15 +01:00