"Filament" option for the View combobox in the preview tab.

This commit is contained in:
supermerill 2018-07-02 18:46:29 +02:00 committed by supermerill
parent 55b91d2987
commit 234d6b68b1
4 changed files with 18 additions and 0 deletions

View File

@ -77,10 +77,12 @@ sub new {
$choice_view_type->Append(L("Speed"));
$choice_view_type->Append(L("Volumetric flow rate"));
$choice_view_type->Append(L("Tool"));
$choice_view_type->Append(L("Filament"));
$choice_view_type->SetSelection(0);
# the following value needs to be changed if new items are added into $choice_view_type before "Tool"
$self->{tool_idx} = 5;
$self->{filament_idx} = 6;
my $label_show_features = $self->{label_show_features} = Wx::StaticText->new($self, -1, L("Show"));
@ -357,6 +359,15 @@ sub load_print {
push @colors, $color;
}
}
if($self->gcode_preview_data->type == $self->{filament_idx}) {
my @extruder_colors = @{$self->{config}->extruder_colour};
my @filament_colors = @{$self->{config}->filament_colour};
for (my $i = 0; $i <= $#extruder_colors; $i += 1) {
my $color = $filament_colors[$i];
$color = '#FFFFFF' if (! defined($color) || $color !~ m/^#[[:xdigit:]]{6}/);
push @colors, $color;
}
}
if ($self->IsShown) {
# used to set the sliders to the extremes of the current zs range

View File

@ -370,6 +370,8 @@ std::string GCodePreviewData::get_legend_title() const
return L("Volumetric flow rate (mm3/s)");
case Extrusion::Tool:
return L("Tool");
case Extrusion::Filament:
return L("Filament");
}
return "";
@ -431,6 +433,7 @@ GCodePreviewData::LegendItemsList GCodePreviewData::get_legend_items(const std::
break;
}
case Extrusion::Tool:
case Extrusion::Filament:
{
unsigned int tools_colors_count = tool_colors.size() / 4;
items.reserve(tools_colors_count);

View File

@ -72,6 +72,7 @@ public:
Feedrate,
VolumetricRate,
Tool,
Filament,
Num_View_Types
};

View File

@ -3674,6 +3674,7 @@ void GLCanvas3D::_load_gcode_extrusion_paths(const GCodePreviewData& preview_dat
case GCodePreviewData::Extrusion::VolumetricRate:
return path.feedrate * (float)path.mm3_per_mm;
case GCodePreviewData::Extrusion::Tool:
case GCodePreviewData::Extrusion::Filament:
return (float)path.extruder_id;
default:
return 0.0f;
@ -3697,6 +3698,7 @@ void GLCanvas3D::_load_gcode_extrusion_paths(const GCodePreviewData& preview_dat
case GCodePreviewData::Extrusion::VolumetricRate:
return data.get_volumetric_rate_color(value);
case GCodePreviewData::Extrusion::Tool:
case GCodePreviewData::Extrusion::Filament:
{
GCodePreviewData::Color color;
::memcpy((void*)color.rgba, (const void*)(tool_colors.data() + (unsigned int)value * 4), 4 * sizeof(float));
@ -3829,6 +3831,7 @@ void GLCanvas3D::_load_gcode_travel_paths(const GCodePreviewData& preview_data,
break;
}
case GCodePreviewData::Extrusion::Tool:
case GCodePreviewData::Extrusion::Filament:
{
res = _travel_paths_by_tool(preview_data, tool_colors);
break;