Alessandro Ranellucci
24571612c7
Some minor changes to the newly-ported Extruder class
2014-04-28 22:02:34 +02:00
Alessandro Ranellucci
4c330b6c59
Merge pull request #1968 from sapir/extrudercpp
...
Translate Extruder class to C++
2014-04-28 21:45:53 +02:00
Alessandro Ranellucci
2720000a17
New get_trapezoids() implementation. Maybe heavier but it doesn't fail with some versions of GCC like the one provided by Boost.Polygon. #1965
2014-04-28 20:14:20 +02:00
Y. Sapir
ad03a88733
Add xsp wrapper for Pointf class.
2014-04-28 01:13:50 +03:00
Y. Sapir
e005ff32c4
Replace Extruder::config accessor with Perl wrapper, with C++ option accessors.
2014-04-28 00:49:05 +03:00
Y. Sapir
2565d80679
Replace multitude of Extruder fields with querying a PrintConfig object by id.
2014-04-27 23:43:44 +03:00
Y. Sapir
04fad70cbf
Make C++ gcode generator use C++ Extruder object directly.
2014-04-27 23:43:43 +03:00
Y. Sapir
66d23a2416
Convert Extruder object (mostly) to C++ with lots of fields.
2014-04-27 23:42:59 +03: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
f6897a346a
Fix islands not being ordered efficiently with the logic that completes each of them before moving to the next one (which is now the default behavior). #1137
2014-04-25 19:11:17 +02:00
Alessandro Ranellucci
8db4913b04
New option for rotating the lower part resulting from the cut so that the flat surface lies on the print bed
2014-04-25 17:50:03 +02:00
Alessandro Ranellucci
4f17c2b7d1
First working implementation of a GUI for cutting
2014-04-25 17:14:39 +02:00
Alessandro Ranellucci
4f5d9ca795
Finished --cut implementation
2014-04-25 12:40:21 +02:00
Alessandro Ranellucci
37c7b958d4
New ExPolygon::triangulate() method
2014-04-24 17:06:16 +02:00
Alessandro Ranellucci
bb0ce3cccd
New Polygon::triangulate_convex() method
2014-04-24 16:59:36 +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
6201aacf88
New coverage detection for bridges. Includes implementation of ExPolygon::get_trapezoids()
2014-04-24 13:44:39 +02:00
Alessandro Ranellucci
7041ebdd22
Workaround for upstream module bug causing command line option parsing for multi-boolean options like retract-layer-change and wipe
2014-04-19 19:14:41 +02:00
Y. Sapir
4deeff995a
Move extrusion path gcode generation to C++ for speed.
2014-04-01 21:11:43 +03:00
Alessandro Ranellucci
071097d3f1
Fix extruder assignment and tests
2014-03-27 00:01:33 +01:00
Alessandro Ranellucci
0ff33f47f1
Fix the extruder override logic. All role-based extruder options now default to 0, meaning no override is defined and the default (inherited) extruder is used. The default extruder option does not use the shortcut logic anymore (it was thus moved to be a CLI-specific logic)
2014-03-26 00:08:15 +01:00
Alessandro Ranellucci
432a87e73d
New option for forcing the generation of interface shells. #1847
2014-03-25 01:11:28 +01:00
Alessandro Ranellucci
7a58457add
Prevent GUI from crashing when invalid values were written in numeric fields. Includes basic validation. #1709
2014-03-24 01:07:30 +01:00
Alessandro Ranellucci
7421a7bf63
Turn fill_density into percentage
2014-03-22 16:23:33 +01:00
Alessandro Ranellucci
ed8a2f7330
Extend medial axis endpoints to fill the entire length. Includes fix for a minor memory leak caused by usage of old signature for Line::point_at()
2014-03-15 16:53:20 +01:00
Alessandro Ranellucci
52de292a48
Fixed wrong refactoring of perimeter tree traversal. #1832
2014-03-15 02:16:04 +01:00
Alessandro Ranellucci
7f5442265e
Include thin walls in general top-level perimeter sorting to get more efficient paths
2014-03-09 20:19:30 +01:00
Alessandro Ranellucci
2a73ab988f
Recursive pruning. Some more unit tests
2014-03-09 17:46:02 +01:00
Alessandro Ranellucci
3c77b301a7
Promising approach to medial axis pruning
2014-03-04 23:33:13 +01:00
Alessandro Ranellucci
eadffe4a9e
Merge branch 'master' into boost-medialaxis
...
Conflicts:
lib/Slic3r/Layer/Region.pm
xs/src/ExPolygon.cpp
xs/src/Point.cpp
xs/src/Point.hpp
xs/src/TriangleMesh.cpp
xs/t/01_trianglemesh.t
2014-03-02 22:36:20 +01:00
Alessandro Ranellucci
691db31da0
Some incomplete work for per-region config
2014-02-14 22:26:00 +01:00
Alessandro Ranellucci
cfc1c5037d
Mark strings as UTF-8 when passing them to Perl
2014-02-14 22:25:59 +01:00
Alessandro Ranellucci
3d483722c6
Perform additional checks before merging solid surfaces (i.e. take flow and fill pattern into account)
2014-02-10 13:19:44 +01:00
Alessandro Ranellucci
42519174cd
New erase() method for DynamicConfig objects
2014-01-22 21:15:19 +01:00
Alessandro Ranellucci
90194ee581
Fix overflow in Point::ccw() affecting convex hull generation. Includes regression test
2014-01-17 14:49:51 +01:00
Alessandro Ranellucci
0d7f0705f0
Fix overflow in distance_to(Line*). It was affecting Douglas-Peucker causing massive loss of geometry. Includes regression test and a couple wkt() implementations
2014-01-17 14:22:37 +01:00
Alessandro Ranellucci
3a3e53b59b
Fixed some obvious mistakes and applied strict type checking to SurfaceCollections too
2014-01-16 19:02:50 +01:00
Alessandro Ranellucci
86f91bb3c4
New TriangleMeshSlicer::cut() method
2014-01-16 11:25:26 +01:00
Alessandro Ranellucci
519ed91c68
Refactored mesh slicing code into a new TriangleMeshSlicer class
2014-01-15 20:31:38 +01:00
Alessandro Ranellucci
3637ca39df
TriangleMesh::slice() now accepts a vector of floats instead of doubles for consistency with mesh coordinates
2014-01-12 23:56:07 +01:00
Alessandro Ranellucci
bf91f3096a
Incomplete work for using Boost.Polygon to compute medial axis
2014-01-09 17:26:39 +01:00
Alessandro Ranellucci
c8a48b4527
Implement modifier volumes and port _merge_loops() to XS
2014-01-07 15:40:38 +01:00
Alessandro Ranellucci
b17d06f9d1
Finished porting BoundingBox to XS
2014-01-07 12:48:09 +01:00
Alessandro Ranellucci
9c0a6a79d3
Incomplete work for porting BoundingBox to XS
2014-01-06 18:29:10 +01:00
Alessandro Ranellucci
c523ddea35
Fix option names not showing in plater object settings
2014-01-05 14:58:41 +01:00
Alessandro Ranellucci
036badf932
Ported Flow to XS
2014-01-05 13:16:13 +01:00
Alessandro Ranellucci
07b9b12475
Make tests pass
2014-01-05 00:36:33 +01:00
Alessandro Ranellucci
8ed738d3f7
More incomplete work for Flow/Extruder refactoring
2014-01-03 18:27:46 +01:00
Alessandro Ranellucci
81663215c5
Adapt plater to the new split config
2014-01-02 22:06:58 +01:00
Alessandro Ranellucci
5bf0942f45
Satisfy test suite and CLI
2014-01-02 17:24:23 +01:00