Lukáš Hejl
88f4641fff
Follow-up to d547279aea40460e7ccfe7c5a4b77a6ef433e9bf: Some of the unit tests use unscaled coordinates, because of that, we will use for them ExtrusionLoop::split_at with zero epsilon.
2022-06-28 10:30:04 +02:00
bubnikv
e90279c513
Ported the G-code generator from Perl to C++.
...
Removed GCode.pm
Removed the Perl bindigns for AvoidCrossingPerimeters, OozePrevention, SpiralVase, Wipe
Changed the std::set of extruder IDs to vector of IDs.
Removed some MSVC compiler warnings, removed obnoxious compiler warnings when compiling the Perl bindings.
2017-05-03 18:28:22 +02:00
bubnikv
ed2ee2f6f3
Merged support_fills with support_interface_fills.
...
When extruding supports, the support is interleaved with interface
if possible (when extruded with the same extruder).
Otherwise the base is extruded first.
2017-04-07 17:37:30 +02:00
bubnikv
7e6390c4b6
Avoid placement of seams on bridging perimeters, if random seam is enabled.
...
https://github.com/alexrj/Slic3r/issues/3526#issuecomment-263125049
2017-02-02 18:49:33 +01:00
bubnikv
483a658144
Method ExtrusionEntity::polygons_covered() and derived were split
...
into polygons_covered_by_width() and polygons_covered_by_spacing().
Bugfix of ExtrusionLoop::split_at(const Point &point),
where the split ExtrusionPaths were not initialised correctly.
2016-11-04 00:10:35 +01:00
bubnikv
7b6b609df1
ExtrusionEntity and derived classes: Documented, short methods made
...
inline for efficiency and readability, grow() renamed to polygons_covered().
2016-11-03 10:24:32 +01:00
Alessandro Ranellucci
7c8b71012c
Force the 'nearest' strategy for starting skirt loops
2015-12-21 15:02:39 +01:00
Alessandro Ranellucci
4913e90e10
Remove any Perl related code from libslic3r
2015-12-08 00:39:54 +01:00
Alessandro Ranellucci
b14290b9f6
Make tests happy
2015-07-02 14:29:20 +02:00
Alessandro Ranellucci
c264969962
Bugfix: crash when rendering lines with zero length in 3D preview. #2569
2015-01-25 15:21:45 +01:00
Alessandro Ranellucci
8791f5a493
Cleanup of some method signatures and of XS return types
2015-01-19 18:53:04 +01:00
Alessandro Ranellucci
e0a3d2577c
Initial work for 3D rendering of toolpaths
2015-01-15 20:06:30 +01:00
Alessandro Ranellucci
21ea100d0e
Fixed tests
2014-12-17 01:15:47 +01:00
Alessandro Ranellucci
c97cac5bc9
Fixed glitch in commit 9c93e52c8f
causing tests failures
2014-11-08 15:02:58 +01:00
Alessandro Ranellucci
9c93e52c8f
Workaround Clipper changing point coordinates while performing simplify_polygons(), thus causing a crash in Slic3r. #2306
2014-11-08 12:56:14 +01:00
Alessandro Ranellucci
67f1cdf76f
Bugfix: seam_position = random didn't work with a single perimeter. #2179
2014-11-07 23:53:18 +01:00
Alessandro Ranellucci
6adc3477c9
Moved C++ code into new libslic3r directory
2014-08-03 19:42:29 +02:00
Alessandro Ranellucci
a3bd1b5302
New seal_position option that replaces randomize_start, start_perimeters_at_concave_points and start_perimeters_at_non_overhang. The two latter options are now always on by default. A new "Aligned" seal position value has been added, that forces starting points to be aligned when not randomized. #1741 #925
2014-05-22 19:34:49 +02:00
Alessandro Ranellucci
f2c5e799b1
Enforce seam alignment and blend in spiral vase. #2023
2014-05-22 12:28:12 +02:00
Alessandro Ranellucci
69002b8ea2
No tests were covering randomize-start, which was not working anymore after recent ExtrusionLoop refactoring. #2028
2014-05-12 21:49:17 +02:00
Alessandro Ranellucci
76a8ec3d9e
Replace to_SV_ref() and to_SV_clone_ref() with templated glue functions
2014-05-08 14:52:48 +02:00
Alessandro Ranellucci
c37ef2f18b
New semantics for ExtrusionLoop objects. Early processing of perimeter overhangs for paralellizing such work and making G-code export lighter. Lots of refactoring. This should fix a number of minor bugs, including reversals of perimeter overhangs.
2014-05-08 11:07:37 +02:00
Alessandro Ranellucci
d2d885fc53
Turn ExtrusionLoop into a collection of polylines. Includes some changes to the Polygon API to avoid returning newly allocatd objects
2014-05-07 12:02:09 +02:00
Alessandro Ranellucci
98e40d3fe4
Store width and height in ExtrusionEntity objects for debugging purposes
2014-04-29 23:16:16 +02:00
Petr Ledvina
115aa6885f
Implement type checking for XS objects
...
Type handling is mainly done using templates.
Template Slic3r::ClassTraits is used to store info about exported types (perl class name). Currently only perl class name and refference name is used.
Template values are initialized by REGISTER_CLASS macro. This macro is used in .cpp file of class ( it needs to be used exactly for each type).
Ref<type> class is used to return value as perl reference. Operator overloading is used to make c++ and XSpp happy, only pointer value should be possible to return.
Clone<type> class is used to return copy of value ( using new and copy constructor). Copy is created on assigment, this should be probably improved (memory leak on multiple assignments).
It is overloaded to be able to return type, type* and type&.
Typechecking in ExtrusionEntityCollection updated to check all passed types.
2014-04-27 19:38:56 +02:00
Alessandro Ranellucci
ca4d4211c9
Refactored signatures of many C++ methods for more efficient and safer style. Includes a bugfix for Point::nearest_point() which was returning a pointer to freed memory. #1961
2014-04-24 16:40:10 +02:00
Alessandro Ranellucci
8ed738d3f7
More incomplete work for Flow/Extruder refactoring
2014-01-03 18:27:46 +01:00
Alessandro Ranellucci
ac88fbcbb0
Ported clip_end(), length(), is_perimeter(), is_fill(), is_bridge() to XS
2013-11-21 18:03:40 +01:00
Alessandro Ranellucci
27e7c6b9f7
Finished implementation of TriangleMesh->split
2013-09-09 22:27:58 +02:00
Alessandro Ranellucci
907ba55aab
Some minor fixes needed after the xsdata merge. #1421
2013-09-06 22:52:56 +02:00
Alessandro Ranellucci
dd70f6be2f
Return ExtrusionPath->polyline and ExtrusionLoop->polygon by reference
2013-08-31 00:50:03 +02:00
Alessandro Ranellucci
ea1d138c95
Ported ExtrusionLoop->make_counter_clockwise()
2013-08-29 01:40:42 +02:00
Alessandro Ranellucci
9458c7db97
Fix integration of XS containers
2013-07-16 17:13:01 +02:00
Alessandro Ranellucci
9b582a11ff
Adopt XS containers everywhere (incomplete work)
2013-07-16 09:49:34 +02:00
Alessandro Ranellucci
339ba9e5c3
Implement split_at_index() and split_at_first_point() in ExtrusionLoop too
2013-07-15 23:56:01 +02:00
Alessandro Ranellucci
ab6b3d41a7
XS interface completed, including new Line class
2013-07-15 22:57:22 +02:00
Alessandro Ranellucci
9af2a1c007
Use XS Point everywhere
2013-07-15 20:31:43 +02:00
Alessandro Ranellucci
d0701cdcd4
Implemented Slic3r::ExtrusionLoop
2013-07-15 16:21:09 +02:00