Move Print object storage to C++. (along with its subobjects)

This commit is contained in:
Y. Sapir 2014-05-06 11:07:18 +03:00
parent 3df2488eca
commit 8da0bded1d
25 changed files with 1221 additions and 273 deletions

View file

@ -1,5 +1,4 @@
package Slic3r::Print::Region;
use Moo;
use Slic3r::Extruder ':roles';
use Slic3r::Flow ':roles';
@ -7,9 +6,6 @@ use Slic3r::Flow ':roles';
# A Print::Region object represents a group of volumes to print
# sharing the same config (including the same assigned extruder(s))
has 'print' => (is => 'ro', required => 1, weak_ref => 1);
has 'config' => (is => 'ro', default => sub { Slic3r::Config::PrintRegion->new});
sub flow {
my ($self, $role, $layer_height, $bridge, $first_layer, $width, $object) = @_;
@ -21,8 +17,8 @@ sub flow {
if (!defined $config_width) {
# get extrusion width from configuration
# (might be an absolute value, or a percent value, or zero for auto)
if ($first_layer && $self->print->config->first_layer_extrusion_width) {
$config_width = $self->print->config->first_layer_extrusion_width;
if ($first_layer && $self->print_config->first_layer_extrusion_width) {
$config_width = $self->print_config->first_layer_extrusion_width;
} elsif ($role == FLOW_ROLE_PERIMETER) {
$config_width = $self->config->perimeter_extrusion_width;
} elsif ($role == FLOW_ROLE_INFILL) {
@ -49,14 +45,14 @@ sub flow {
} else {
die "Unknown role $role";
}
my $nozzle_diameter = $self->print->config->get_at('nozzle_diameter', $extruder-1);
my $nozzle_diameter = $self->print_config->get_at('nozzle_diameter', $extruder-1);
return Slic3r::Flow->new_from_width(
width => $config_width,
role => $role,
nozzle_diameter => $nozzle_diameter,
layer_height => $layer_height,
bridge_flow_ratio => ($bridge ? $self->print->config->bridge_flow_ratio : 0),
bridge_flow_ratio => ($bridge ? $self->print_config->bridge_flow_ratio : 0),
);
}