mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-11-02 04:31:17 -07:00
Another set of 3DScene methods moved to c++
This commit is contained in:
parent
9729c71691
commit
d74b85f3fe
13 changed files with 151 additions and 62 deletions
|
|
@ -42,13 +42,17 @@ sub new {
|
|||
|
||||
$self->{objects_volumes_idxs} = [];
|
||||
|
||||
$self->on_select(sub {
|
||||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::register_on_select_callback($self, sub {
|
||||
my ($volume_idx) = @_;
|
||||
$self->{on_select_object}->(($volume_idx == -1) ? undef : $self->volumes->[$volume_idx]->object_idx)
|
||||
if ($self->{on_select_object});
|
||||
});
|
||||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::register_on_select_callback($self, $self->on_select);
|
||||
});
|
||||
# $self->on_select(sub {
|
||||
# my ($volume_idx) = @_;
|
||||
# $self->{on_select_object}->(($volume_idx == -1) ? undef : $self->volumes->[$volume_idx]->object_idx)
|
||||
# if ($self->{on_select_object});
|
||||
# });
|
||||
#==============================================================================================================================
|
||||
|
||||
#==============================================================================================================================
|
||||
|
|
|
|||
|
|
@ -310,7 +310,10 @@ sub refresh_print {
|
|||
sub reset_gcode_preview_data {
|
||||
my ($self) = @_;
|
||||
$self->gcode_preview_data->reset;
|
||||
$self->canvas->reset_legend_texture();
|
||||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::reset_legend_texture();
|
||||
# $self->canvas->reset_legend_texture();
|
||||
#==============================================================================================================================
|
||||
}
|
||||
|
||||
sub load_print {
|
||||
|
|
@ -335,7 +338,10 @@ sub load_print {
|
|||
|
||||
if ($n_layers == 0) {
|
||||
$self->reset_sliders;
|
||||
$self->canvas->reset_legend_texture();
|
||||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::reset_legend_texture();
|
||||
# $self->canvas->reset_legend_texture();
|
||||
#==============================================================================================================================
|
||||
$self->canvas->Refresh; # clears canvas
|
||||
return;
|
||||
}
|
||||
|
|
@ -379,14 +385,20 @@ sub load_print {
|
|||
#$self->canvas->volumes->[$_]->color->[3] = 0.2 for @volume_ids;
|
||||
}
|
||||
$self->show_hide_ui_elements('simple');
|
||||
$self->canvas->reset_legend_texture();
|
||||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::reset_legend_texture();
|
||||
# $self->canvas->reset_legend_texture();
|
||||
#==============================================================================================================================
|
||||
} else {
|
||||
$self->{force_sliders_full_range} = (scalar(@{$self->canvas->volumes}) == 0);
|
||||
$self->canvas->load_gcode_preview($self->print, $self->gcode_preview_data, \@colors);
|
||||
$self->show_hide_ui_elements('full');
|
||||
|
||||
# recalculates zs and update sliders accordingly
|
||||
$self->{layers_z} = $self->canvas->get_current_print_zs(1);
|
||||
#==============================================================================================================================
|
||||
$self->{layers_z} = Slic3r::GUI::_3DScene::get_current_print_zs($self->canvas, 1);
|
||||
# $self->{layers_z} = $self->canvas->get_current_print_zs(1);
|
||||
#==============================================================================================================================
|
||||
$n_layers = scalar(@{$self->{layers_z}});
|
||||
if ($n_layers == 0) {
|
||||
# all layers filtered out
|
||||
|
|
@ -472,7 +484,10 @@ sub set_z_range
|
|||
$self->{z_label_low}->SetLabel(sprintf '%.2f', $z_low);
|
||||
$self->{z_label_high}->SetLabel(sprintf '%.2f', $z_high);
|
||||
|
||||
my $layers_z = $self->canvas->get_current_print_zs(0);
|
||||
#==============================================================================================================================
|
||||
my $layers_z = Slic3r::GUI::_3DScene::get_current_print_zs($self->canvas, 0);
|
||||
# my $layers_z = $self->canvas->get_current_print_zs(0);
|
||||
#==============================================================================================================================
|
||||
for (my $i = 0; $i < scalar(@{$layers_z}); $i += 1) {
|
||||
if (($z_low - 1e-6 < @{$layers_z}[$i]) && (@{$layers_z}[$i] < $z_low + 1e-6)) {
|
||||
$self->{z_label_low_idx}->SetLabel(sprintf '%d', $i + 1);
|
||||
|
|
@ -486,7 +501,10 @@ sub set_z_range
|
|||
}
|
||||
}
|
||||
|
||||
$self->canvas->set_toolpaths_range($z_low - 1e-6, $z_high + 1e-6);
|
||||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::set_toolpaths_range($self->canvas, $z_low - 1e-6, $z_high + 1e-6);
|
||||
# $self->canvas->set_toolpaths_range($z_low - 1e-6, $z_high + 1e-6);
|
||||
#==============================================================================================================================
|
||||
$self->canvas->Refresh if $self->IsShown;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -267,13 +267,14 @@ sub _update {
|
|||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::set_cutting_plane($self->{canvas}, $self->{cut_options}{z}, [@expolygons]);
|
||||
Slic3r::GUI::_3DScene::update_volumes_colors_by_extruder($self->{canvas});
|
||||
Slic3r::GUI::_3DScene::render($self->{canvas});
|
||||
# $self->{canvas}->SetCuttingPlane(
|
||||
# $self->{cut_options}{z},
|
||||
# [@expolygons],
|
||||
# );
|
||||
# $self->{canvas}->update_volumes_colors_by_extruder($self->GetParent->{config});
|
||||
# $self->{canvas}->Render;
|
||||
#==============================================================================================================================
|
||||
$self->{canvas}->Render;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -159,11 +159,18 @@ sub new {
|
|||
#==============================================================================================================================
|
||||
$canvas->select_by('volume');
|
||||
|
||||
$canvas->on_select(sub {
|
||||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::register_on_select_callback($canvas, sub {
|
||||
my ($volume_idx) = @_;
|
||||
# convert scene volume to model object volume
|
||||
$self->reload_tree(($volume_idx == -1) ? undef : $canvas->volumes->[$volume_idx]->volume_idx);
|
||||
});
|
||||
# $canvas->on_select(sub {
|
||||
# my ($volume_idx) = @_;
|
||||
# # convert scene volume to model object volume
|
||||
# $self->reload_tree(($volume_idx == -1) ? undef : $canvas->volumes->[$volume_idx]->volume_idx);
|
||||
# });
|
||||
#==============================================================================================================================
|
||||
|
||||
$canvas->load_object($self->{model_object}, undef, undef, [0]);
|
||||
#==============================================================================================================================
|
||||
|
|
@ -348,7 +355,10 @@ sub selection_changed {
|
|||
$self->{settings_panel}->enable;
|
||||
}
|
||||
|
||||
$self->{canvas}->Render if $self->{canvas};
|
||||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::render($self->{canvas}) if $self->{canvas};
|
||||
# $self->{canvas}->Render if $self->{canvas};
|
||||
#==============================================================================================================================
|
||||
}
|
||||
|
||||
sub on_btn_load {
|
||||
|
|
@ -510,10 +520,11 @@ sub _parts_changed {
|
|||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::zoom_to_volumes($self->{canvas});
|
||||
Slic3r::GUI::_3DScene::update_volumes_colors_by_extruder($self->{canvas});
|
||||
Slic3r::GUI::_3DScene::render($self->{canvas});
|
||||
# $self->{canvas}->zoom_to_volumes;
|
||||
# $self->{canvas}->update_volumes_colors_by_extruder($self->GetParent->GetParent->GetParent->{config});
|
||||
# $self->{canvas}->Render;
|
||||
#==============================================================================================================================
|
||||
$self->{canvas}->Render;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -569,9 +580,10 @@ sub _update_canvas {
|
|||
|
||||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::update_volumes_colors_by_extruder($self->{canvas});
|
||||
Slic3r::GUI::_3DScene::render($self->{canvas});
|
||||
# $self->{canvas}->update_volumes_colors_by_extruder($self->GetParent->GetParent->GetParent->{config});
|
||||
# $self->{canvas}->Render;
|
||||
#==============================================================================================================================
|
||||
$self->{canvas}->Render;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -600,9 +612,10 @@ sub _update {
|
|||
$self->{canvas}->load_object($_, undef, [0]) for @objects;
|
||||
#==============================================================================================================================
|
||||
Slic3r::GUI::_3DScene::update_volumes_colors_by_extruder($self->{canvas});
|
||||
Slic3r::GUI::_3DScene::render($self->{canvas});
|
||||
# $self->{canvas}->update_volumes_colors_by_extruder($self->GetParent->GetParent->GetParent->{config});
|
||||
# $self->{canvas}->Render;
|
||||
#==============================================================================================================================
|
||||
$self->{canvas}->Render;
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue