Commit Graph

15 Commits

Author SHA1 Message Date
bubnikv
9205c8aab4 Sketch of the PlaceholderParser if/elsif/else macro. 2017-11-17 18:46:03 +01:00
bubnikv
47f193fe2d The PlaceholderParser has been rewritten to use
a real boost::spirit::qi parser, accessing the DynamicConfig repository
directly. This is a first step towards a full fledged expression
interpreter.
2017-11-17 11:15:46 +01: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
bubnikv
75c72bc59b Fix of "MM incorrect extruder temperature"
https://github.com/prusa3d/Slic3r/issues/443

Change of the PlaceholderParser:
All vector configuration values stored into the PlaceholderParser
are expected to be addressed by the extruder ID, therefore
if a vector configuration value is addressed without an index,
a current extruder ID is used.

Also a small fix of fan handling: The fan speed is set to zero
at the start of the G-code if the cooling for the initial extruder
is disabled.
2017-07-31 15:42:55 +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
ab357c75a5 Updated xs/Build.PL to support Visual Studio compiler suite.
Updated xs/Build.PL to understand BOOST_LIBRARY_PATH and
BOOST_INCLUDE_PATH environment variables. This way one may easily
switch between various boost builds.

Some minor tweeks were done to make Slic3r compile with
Visual Studio 2013.
2016-08-21 21:46:17 +02:00
Alessandro Ranellucci
f66585c250 Fixed compilation on OS X 2016-04-11 12:04:54 +02:00
Alessandro Ranellucci
9f90b2a1bf Fix compilation 2015-12-08 11:01:12 +01:00
Alessandro Ranellucci
4913e90e10 Remove any Perl related code from libslic3r 2015-12-08 00:39:54 +01:00
Alessandro Ranellucci
3fac8cd77e Large refactoring of the Config classes 2015-12-07 19:39:49 +01:00
Alessandro Ranellucci
580d28d071 Finished porting PlaceholderParser to XS 2015-07-01 19:35:22 +02:00
Alessandro Ranellucci
f361d8ad43 Ported PlaceholderParser::apply_env_variables() to XS 2015-07-01 17:56:38 +02:00
Alessandro Ranellucci
bf541a1fed Refactoring in PlaceholderParser 2015-05-02 21:43:22 +02:00
Alessandro Ranellucci
8b6a8e6307 Ported PlaceholderParser::update_timestamp() to XS
Note that Slic3r version number is now located in libslic3r.h
2014-11-09 20:41:43 +01:00
Alessandro Ranellucci
6adc3477c9 Moved C++ code into new libslic3r directory 2014-08-03 19:42:29 +02:00