Commit Graph

4312 Commits

Author SHA1 Message Date
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
bubnikv
349cf841d6 Need to include '-lboost_filesystem' in build #166 2017-03-02 16:33:50 +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
bubnikv
dff5bda202 The Shiny profiler is not thread safe. Disable parallelization if
SLIC3R_PROFILE is enabled.
2017-03-02 16:31:29 +01:00
bubnikv
bc19e97d45 Some optimization of memory allocation, some reduction / inlining of short functions. 2017-03-01 14:27:08 +01:00
bubnikv
f8a2087fc6 Fixed a bug after merge.
https://github.com/prusa3d/Slic3r/issues/163
2017-03-01 13:16:33 +01:00
bubnikv
46fc4a0a8e Correctly rename g-code file once it is generated. 2017-02-28 10:44:44 +01:00
Alessandro Ranellucci
80f345d7c1 Remove unnecessary method call 2017-02-28 10:41:36 +01:00
Alessandro Ranellucci
6a90fceaaf Ported expanded_output_filepath() to C++/XS 2017-02-28 10:38:32 +01:00
bubnikv
66493ce821 Some documentation on missing functionalities. 2017-02-28 10:29:52 +01:00
Alessandro Ranellucci
6f11969257 Restore [input_filename] in custom G-code as well 2017-02-28 10:28:29 +01:00
AndylgTom
4528f35bc0 Update Config.xsp (#50)
For fix to display Unicode in category
2017-02-28 10:06:03 +01:00
bubnikv
4010dd71f6 Support Prusa Control project files (.PRUS) by the GUI. 2017-02-27 16:09:22 +01:00
bubnikv
8a8b49ea02 Removed CoolingBuffer.pm as it has been superseeded by the C++ code. 2017-02-27 01:51:08 +01:00
bubnikv
c9465cf7fa Fixed typos in AMF export. 2017-02-27 01:39:20 +01:00
bubnikv
ee619701d8 Got rid of the Perl Format::STL, Format::AMF, Format::OBJ for good. 2017-02-27 01:03:00 +01:00
bubnikv
f0f550783f Good bye, Perl Expat binding! 2017-02-27 00:38:30 +01:00
bubnikv
9ea570ea4e Fix of a warning in expat parser, which turns to an error
on some Perl/XS installations (strawberry Perl 64bit)
2017-02-26 23:35:44 +01:00
bubnikv
616788a600 Disabling the support tests until the test suite is modified
for the new supports.
2017-02-26 23:16:26 +01:00
bubnikv
2f67a16c6f Fixing compilation issues. 2017-02-26 23:13:31 +01:00
bubnikv
2c932b1bf4 Fixed a bug in AMF serialization. 2017-02-26 22:59:25 +01:00
Joseph Lenox
1f1b6c8036 Fixed a missing include. 2017-02-26 22:40:10 +01:00
bubnikv
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
bubnikv
5b98f1a068 Some utility methods to help loading models from the disk.
Not quite sucessfull try to fix the crahes on mesh cut.
2017-02-26 22:03:03 +01:00
bubnikv
efb02f71f0 AdMesh:
unify positive and negative zeros in stl_check_facets_exact() and stl_check_facets_nearby()
New function stl_transform() by a 3x4 matrix.
Some constness improvements.
2017-02-26 21:59:09 +01:00
bubnikv
b7aeeb968b Using the C++ file loaders. 2017-02-26 21:54:42 +01:00
bubnikv
121b3c31d2 Removed the old Perl Supports. 2017-02-26 21:49:40 +01:00
bubnikv
25dfe7278c Initial rewrite of the file accessors from Perl to C++.
This is especially important for the extremely slow AMF parser.
Also there is a new file handler for the Prusa Control 'PRUS' format.
2017-02-26 21:46:33 +01:00
bubnikv
91af2ddd1e Include expat parser into the Slic3r source code tree.
Having the expat parser inside the Slic3r source base makes life easier
on non-Linux systems and it also allows us to configure the Expat
parser for maximum performance by disabling all unneeded features.
2017-02-26 21:42:52 +01:00
bubnikv
82aed45816 Hopefully fixes the aligned seam:
https://github.com/prusa3d/Slic3r/issues/74

The way it works now is following:
Slic3r will add some negative penalty to all perimeter points near the last seam.
Once the perimeter point with minimum penalty is found, its penalty is compared
to a point closest to the last seam. If the penalty of the point
closest to the last seam is nearly as good as the minimum penalty,
the point closest to the last seam is picked instead. This heuristics
will hide the seams into corners if possible, but if not possible, it will
strive to align the seams precisely.
2017-02-22 16:35:07 +01:00
bubnikv
523b7f3ebc Fix of a typo specific to a debugging build. 2017-02-22 16:13:10 +01:00
bubnikv
f7acb20e23 Changed defaults for the perimeter/infill overlap (15-55%)
and for the infill pattern (honeycomb->stars)
2017-02-22 16:06:35 +01:00
bubnikv
a4dd6c7ce5 Added missing get_volume() method to the PrintObject Perl interface. 2017-02-22 16:05:14 +01:00
Alessandro Ranellucci
4a84643894 Fixed regression causing slowdown_below_layer_time to be ignored. #3515 #3443 2017-02-22 15:29:14 +01:00
bubnikv
9f660738b3 Fixes an issue: Slic3r outputs Weight: %.1fg, Cost: %.1f on command line,
instead of filling in the numbers.

https://github.com/prusa3d/Slic3r/issues/144
2017-02-22 12:01:31 +01:00
Alessandro Ranellucci
8174c05df4 Command for reloading an object from file. #1466 2017-02-21 17:58:48 +01:00