Commit Graph

70 Commits

Author SHA1 Message Date
Vojtech Bubnik
57db091612 Removed Surface and SurfaceCollection from Perl bindings. 2022-10-27 19:43:56 +02:00
Vojtech Bubnik
d041fa6c0c Refactored PerimeterGenerator to output out_fill_surfaces as ExPolygons,
not SurfaceCollection.

Reworked combineinfill.t, 07_extrusionpath.t, 08_extrusionloop.t to c++.
Removed Layer / ExtrusionPath / ExtrusionLoop / ExtrusionEntityCollection
from Perl bindings.
2022-10-27 19:08:43 +02:00
Vojtech Bubnik
d4b8d4d0f3 Further Perl unit test porting to C++ and Perl interface reduction:
Ported cooling, gap fill, thin walls and polyline unit tests.
2022-05-05 17:57:57 +02:00
Vojtech Bubnik
aa3231e2c5 Further slimming of Perl bindings. 2022-05-04 19:10:34 +02:00
Vojtech Bubnik
576c167bd5 Ported "avoid crossing perimeters" and bridging unit tests from Perl
to C++.
Further reduced Perl bindings.
Got rid of the ExPolygonCollection wrapper, replaced with ExPolygons.
2022-05-04 18:21:08 +02:00
Vojtech Bubnik
a627614b58 Perl unit tests for perimeters and multi-material were rewritten to C++.
Perl binding was slimmed down, namely Clipper is no more linked by Perl.
2022-05-04 15:06:04 +02:00
Vojtech Bubnik
33b2478b69 Ported Infill unit tests from Perl to C++. 2022-05-02 14:34:50 +02:00
Vojtech Bubnik
0f3cabb5d9 Support for forward compatibility of configurations, user and system
config bundles, project files (3MFs, AMFs). When loading these files,
the caller may decide whether to substitute some of the configuration
values the current PrusaSlicer version does not understand with
some reasonable default value, and whether to report it. If substitution
is disabled, an exception is being thrown as before this commit.
If substitution is enabled, list of substitutions is returned by the
API to be presented to the user. This allows us to introduce for example
new firmware flavor key in PrusaSlicer 2.4 while letting PrusaSlicer
2.3.2 to fall back to some default and to report it to the user.

When slicing from command line, substutions are performed by default
and reported into the console, however substitutions may be either
disabled or made silent with the new "config-compatibility" command
line option.

Substitute enums and bools only.  Allow booleans to be parsed as
    true: "1", "enabled", "on" case insensitive
    false: "0", "disabled", "off" case insensitive
This will allow us in the future for example to switch the draft_shield
boolean to an enum with the following values: "disabled" / "enabled" / "limited".

Added "enum_bitmask.hpp" - support for type safe sets of options.
See for example PresetBundle::load_configbundle(...
LoadConfigBundleAttributes flags) for an example of intended usage.

WIP: GUI for reporting the list of config substitutions needs to be
implemented by @YuSanka.
2021-06-27 16:57:05 +02:00
Lukáš Hejl
87879034f6 Merge remote-tracking branch 'origin/master' into lh_avoid_crossing_perimeters
# Conflicts:
#	src/libslic3r/MotionPlanner.cpp
#	src/libslic3r/libslic3r.h
2020-11-29 17:27:23 +01:00
Vojtech Bubnik
ddc9e26f19 Follow-up to 80e8b5e985
Removed the legacy PreviewData.cpp,hpp
2020-11-21 11:02:20 +01:00
Vojtech Bubnik
04c2fde671 Removed the old motion planner. 2020-11-17 09:33:30 +01:00
enricoturri1966
277b340481 Attempt to fix build on OsX 2020-05-07 12:03:17 +02:00
enricoturri1966
27b9f85607 Fixed build when tech ENABLE_GCODE_VIEWER is disabled + fixed perl code 2020-05-07 11:24:36 +02:00
bubnikv
e04e2b3636 Slight improvements of unit tests, fix of perl bindings. 2019-10-18 12:05:37 +02:00
bubnikv
c980e96dbb Fix of perl bindings 2019-03-13 17:38:48 +01:00
bubnikv
cea6ca83db removed the --gui parameter from the slic3r wrapper.
Fixed the perl bindings
2019-03-13 17:06:45 +01:00
bubnikv
df8d475363 Fixed perl bindings 2019-03-13 16:53:08 +01:00
bubnikv
18025cc669 Reworked the command line interface based on the current state
of the upstream.
Thanks @alexrj, @lordofhyphens for the original code of slic3r.cpp
2019-03-13 15:44:50 +01:00
Vojtech Kral
e8d63f3eb1 Upgrade Boost to 1.66 on Windows 2019-01-16 15:14:18 +01:00
bubnikv
bde4153d44 Removed legacy GUI Perl bindings,
replaced Print & SLAPrint pointers with BackgroundProcessing pointer
at the GLCanvas3D level, so that the Print & SLAPrint access will be
synchronized with the current printer technology.
2018-11-22 15:29:59 +01:00
tamasmeszaros
1680bcb10d removing remnant junk for AppController 2018-11-12 17:41:05 +01:00
Enrico Turri
e3e5948982 1st installment of preview ported in c++ 2018-09-18 13:35:05 +02:00
bubnikv
0235f1a821 Merged with dev 2018-09-12 11:59:02 +02:00
tamasmeszaros
4f53fc2a5f Merge remote-tracking branch 'origin/cpp_progress_status_bar' into dev
# Conflicts:
#	lib/Slic3r/GUI/MainFrame.pm
#	xs/src/slic3r/AppController.cpp
#	xs/src/slic3r/AppControllerWx.cpp
#	xs/src/slic3r/GUI/GUI.hpp
2018-08-30 17:35:49 +02:00
tamasmeszaros
9e2d48ff3b Almost working c++ status bar
Signed-off-by: tamasmeszaros <meszaros.q@gmail.com>
2018-08-30 11:54:08 +02:00
Enrico Turri
66ce638439 Fixed conflicts after merging with branch eigenize 2018-08-23 15:37:38 +02:00
bubnikv
ac72cd779f Replaced Point3 with Eigen Vec3crd, removed Point3 from the Perl binding. 2018-08-21 22:14:47 +02:00
bubnikv
0b5b02e002 Eradicated the Pointf class, replaced with Eigen Vector3d 2018-08-21 21:05:24 +02:00
bubnikv
cae0806112 Eradicated most of Pointf extras compared to pure Eigen::Vector2d. 2018-08-21 20:34:45 +02:00
bubnikv
cb138a20b8 Completely replaced the homebrew Pointf3 class with Eigen Vec3d.
Replaced the unscale macro with a template, implemented templates
for unscaling Eigen vectors.
2018-08-21 17:43:05 +02:00
Vojtech Kral
0c984c7584 Print host bugfixes / refactoring 2018-08-21 15:47:29 +02:00
Martin Loidl
dd1fd66a47 Added possibility for upload to Duet
Further changes:
- Added new configuration option Host Type
- Added abstract base class for future printer hosts
- Moved location of upload dialog (also made it a little bit more configureable)
- added possibility to send file via postfield instead a new frame
2018-08-21 11:12:53 +02:00
bubnikv
ab60d8adb4 Replaced coincides_with(const Line &line) with operator== 2018-08-17 18:27:07 +02:00
bubnikv
65011f9382 Removed the x(), y(), z() Point/Pointf/Point3/Pointf3 accessors. 2018-08-17 15:53:43 +02:00
bubnikv
86da661097 Changing the internal representation of Point / Pointf / Point3 / Pointf3 to Eigen Matrix types, first step 2018-08-14 18:33:26 +02:00
tamasmeszaros
ad4d95f60c AppController integration 2018-06-28 18:47:18 +02:00
bubnikv
82890ec815 Removed some obsolete Perl binding.
Added Version Index "version" method.
Implemented automatic selection of default_print_profile and
default_filament_profile, when the print / filament profiles are
not compatible with the selected printer profile.
Fixed selection of a printer profile, if the currently selected
printer profile becomes invisible.
2018-04-13 14:49:33 +02:00
Vojtech Kral
57e47a3296 AppConfig: Support for vendor / model / variant enable state 2018-04-06 13:24:02 +02:00
bubnikv
e931f75010 Work in progress: Good bye, Perl Threads! 2018-03-23 11:41:20 +01:00
Vojtech Kral
7cfc5204c8 WIP: OctoPrint 2018-03-05 18:33:15 +01:00
bubnikv
39100068c1 Removed the Perl Tab & BedDialog as they were replaced by their C++
counterparts.
2018-02-15 18:16:19 +01:00
bubnikv
f1840a52db Merged the C++ port of the GUI Tabs / OptionGroup / Option classes
by @YuSanka, thanks @lordofhyphens for the initial port
of the OptionGroup / Option.
2018-02-15 18:13:37 +01:00
bubnikv
b1f5e7e8fa Removed the GCodePreviewData from the Print class, it does not belong here,
as the GCode is generated outside of the Print class.
Exported the GCodePreviewData as GCode::PreviewData to Perl.
When exporting the G-code with a command line Slic3r,
the GCodeAnalyzer is now supressed for performance reasons.
Removed obsolete Perl module Slic3r::GUI::Plater::3DToolpaths.
2018-02-14 20:35:59 +01:00
bubnikv
09c9f6bdc3 Added TabIface C++ wrapper for GUI::Tab C++ class,
exported the TabIface to Perl.
2018-01-23 11:37:19 +01:00
bubnikv
9a0100d6de Initial definition of PresetHints C++ class and Perl binding, ported the cooling logic hints to C++.
Removed Perl Flow::new_from_spacing bindings.
Some Fill C++11 beautification.
Fix of a support_material_1st_layer_flow, brim_flow and skirt_flow logic to use the extrusion_width if both first_layer_extrusion_width and support_material_extrusion_width are undefined.
Documented the extrusion width logic in the config tooltips, including the default values.
2017-11-09 10:48:06 +01:00
bubnikv
1fee3633a0 New C++ class AppConfig for maintaining the config.ini
New helper function for generating a unified "generated by slic3r" header.
2017-10-30 18:15:41 +01:00
bubnikv
fe0bf6ebf3 Optimization of Perlglue ConfigBase__get 2017-10-18 14:26:38 +02:00
bubnikv
af51220f34 Fix of preceding commit. 2017-10-17 19:41:04 +02:00
bubnikv
b9d57483d8 perglue.cpp - use static_cast instead of dynamic_cast if possible,
use switch instead of plenty of ifs,
export clone<DynamicPrintConfig> to Perl XS.
2017-10-17 19:19:41 +02:00
bubnikv
3731820c48 Optimization of the configuration layer:
The values of StaticPrintConfig derived objects were searched by a name
walking through a huge chained if.
Now they are being mapped with a std::map.
Also initialization of StaticPrintConfig classes from their ConfigOptionDef
defaults is done by maintaining a single global definition of each
StaticPrintConfig derived class, and a new instance is initialized
from this static copy.

Also the ConfigOption instances are casted using static_cast
wherever possible, and their types are verified by a virtual type() method.
This approach avoids insiginificant performance penalty of a dynamic_cast.

Also the compare and clone methods were added to ConfigOption,
and the cloning & compare work on binary values, not by serialization.
2017-10-17 16:01:18 +02:00