mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-12 09:17:50 -06:00
Make LayerView work with "Purge" line type
CURA-3094 In CuraEngine, we created a new line type called "Purge" to make Prime Tower Purge work. This commit makes the LayerView plugin to handle "Purge" lines correctly.
This commit is contained in:
parent
8393a0efb4
commit
81323e555a
7 changed files with 51 additions and 6 deletions
|
@ -18,10 +18,14 @@ class LayerPolygon:
|
||||||
MoveCombingType = 8
|
MoveCombingType = 8
|
||||||
MoveRetractionType = 9
|
MoveRetractionType = 9
|
||||||
SupportInterfaceType = 10
|
SupportInterfaceType = 10
|
||||||
__number_of_types = 11
|
PurgeType = 11
|
||||||
|
|
||||||
|
__number_of_types = 12
|
||||||
|
|
||||||
|
__jump_map = numpy.logical_or(numpy.logical_or(numpy.arange(__number_of_types) == NoneType,
|
||||||
|
numpy.arange(__number_of_types) == MoveCombingType),
|
||||||
|
numpy.arange(__number_of_types) == MoveRetractionType)
|
||||||
|
|
||||||
__jump_map = numpy.logical_or(numpy.logical_or(numpy.arange(__number_of_types) == NoneType, numpy.arange(__number_of_types) == MoveCombingType), numpy.arange(__number_of_types) == MoveRetractionType)
|
|
||||||
|
|
||||||
## LayerPolygon, used in ProcessSlicedLayersJob
|
## LayerPolygon, used in ProcessSlicedLayersJob
|
||||||
# \param extruder
|
# \param extruder
|
||||||
# \param line_types array with line_types
|
# \param line_types array with line_types
|
||||||
|
@ -222,7 +226,8 @@ class LayerPolygon:
|
||||||
theme.getColor("layerview_support_infill").getRgbF(), # SupportInfillType
|
theme.getColor("layerview_support_infill").getRgbF(), # SupportInfillType
|
||||||
theme.getColor("layerview_move_combing").getRgbF(), # MoveCombingType
|
theme.getColor("layerview_move_combing").getRgbF(), # MoveCombingType
|
||||||
theme.getColor("layerview_move_retraction").getRgbF(), # MoveRetractionType
|
theme.getColor("layerview_move_retraction").getRgbF(), # MoveRetractionType
|
||||||
theme.getColor("layerview_support_interface").getRgbF() # SupportInterfaceType
|
theme.getColor("layerview_support_interface").getRgbF(), # SupportInterfaceType
|
||||||
|
theme.getColor("layerview_purge").getRgbF() # PurgeType
|
||||||
])
|
])
|
||||||
|
|
||||||
return cls.__color_map
|
return cls.__color_map
|
||||||
|
|
|
@ -51,6 +51,7 @@ class LayerPass(RenderPass):
|
||||||
self._layer_shader.setUniformValue("u_show_helpers", self._layer_view.getShowHelpers())
|
self._layer_shader.setUniformValue("u_show_helpers", self._layer_view.getShowHelpers())
|
||||||
self._layer_shader.setUniformValue("u_show_skin", self._layer_view.getShowSkin())
|
self._layer_shader.setUniformValue("u_show_skin", self._layer_view.getShowSkin())
|
||||||
self._layer_shader.setUniformValue("u_show_infill", self._layer_view.getShowInfill())
|
self._layer_shader.setUniformValue("u_show_infill", self._layer_view.getShowInfill())
|
||||||
|
self._layer_shader.setUniformValue("u_show_purge", self._layer_view.getShowPurge())
|
||||||
else:
|
else:
|
||||||
#defaults
|
#defaults
|
||||||
self._layer_shader.setUniformValue("u_layer_view_type", 1)
|
self._layer_shader.setUniformValue("u_layer_view_type", 1)
|
||||||
|
@ -59,6 +60,7 @@ class LayerPass(RenderPass):
|
||||||
self._layer_shader.setUniformValue("u_show_helpers", 1)
|
self._layer_shader.setUniformValue("u_show_helpers", 1)
|
||||||
self._layer_shader.setUniformValue("u_show_skin", 1)
|
self._layer_shader.setUniformValue("u_show_skin", 1)
|
||||||
self._layer_shader.setUniformValue("u_show_infill", 1)
|
self._layer_shader.setUniformValue("u_show_infill", 1)
|
||||||
|
self._layer_shader.setUniformValue("u_show_purge", 1)
|
||||||
|
|
||||||
if not self._tool_handle_shader:
|
if not self._tool_handle_shader:
|
||||||
self._tool_handle_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "toolhandle.shader"))
|
self._tool_handle_shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "toolhandle.shader"))
|
||||||
|
|
|
@ -82,6 +82,7 @@ class LayerView(View):
|
||||||
Preferences.getInstance().addPreference("layerview/show_helpers", True)
|
Preferences.getInstance().addPreference("layerview/show_helpers", True)
|
||||||
Preferences.getInstance().addPreference("layerview/show_skin", True)
|
Preferences.getInstance().addPreference("layerview/show_skin", True)
|
||||||
Preferences.getInstance().addPreference("layerview/show_infill", True)
|
Preferences.getInstance().addPreference("layerview/show_infill", True)
|
||||||
|
Preferences.getInstance().addPreference("layerview/show_purge", True)
|
||||||
|
|
||||||
Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged)
|
Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged)
|
||||||
self._updateWithPreferences()
|
self._updateWithPreferences()
|
||||||
|
@ -100,6 +101,7 @@ class LayerView(View):
|
||||||
self._show_helpers = 1
|
self._show_helpers = 1
|
||||||
self._show_skin = 1
|
self._show_skin = 1
|
||||||
self._show_infill = 1
|
self._show_infill = 1
|
||||||
|
self._show_purge = 1
|
||||||
|
|
||||||
def getActivity(self):
|
def getActivity(self):
|
||||||
return self._activity
|
return self._activity
|
||||||
|
@ -237,6 +239,13 @@ class LayerView(View):
|
||||||
def getShowInfill(self):
|
def getShowInfill(self):
|
||||||
return self._show_infill
|
return self._show_infill
|
||||||
|
|
||||||
|
def setShowPurge(self, show):
|
||||||
|
self._show_purge = show
|
||||||
|
self.currentLayerNumChanged.emit()
|
||||||
|
|
||||||
|
def getShowPurge(self):
|
||||||
|
return self._show_purge
|
||||||
|
|
||||||
def getCompatibilityMode(self):
|
def getCompatibilityMode(self):
|
||||||
return self._compatibility_mode
|
return self._compatibility_mode
|
||||||
|
|
||||||
|
@ -408,6 +417,7 @@ class LayerView(View):
|
||||||
self.setShowHelpers(bool(Preferences.getInstance().getValue("layerview/show_helpers")))
|
self.setShowHelpers(bool(Preferences.getInstance().getValue("layerview/show_helpers")))
|
||||||
self.setShowSkin(bool(Preferences.getInstance().getValue("layerview/show_skin")))
|
self.setShowSkin(bool(Preferences.getInstance().getValue("layerview/show_skin")))
|
||||||
self.setShowInfill(bool(Preferences.getInstance().getValue("layerview/show_infill")))
|
self.setShowInfill(bool(Preferences.getInstance().getValue("layerview/show_infill")))
|
||||||
|
self.setShowPurge(bool(Preferences.getInstance().getValue("layerview/show_purge")))
|
||||||
|
|
||||||
self._startUpdateTopLayers()
|
self._startUpdateTopLayers()
|
||||||
self.preferencesChanged.emit()
|
self.preferencesChanged.emit()
|
||||||
|
@ -423,6 +433,7 @@ class LayerView(View):
|
||||||
"layerview/show_helpers",
|
"layerview/show_helpers",
|
||||||
"layerview/show_skin",
|
"layerview/show_skin",
|
||||||
"layerview/show_infill",
|
"layerview/show_infill",
|
||||||
|
"layerview/show_purge",
|
||||||
}:
|
}:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ Item
|
||||||
property bool show_helpers: UM.Preferences.getValue("layerview/show_helpers")
|
property bool show_helpers: UM.Preferences.getValue("layerview/show_helpers")
|
||||||
property bool show_skin: UM.Preferences.getValue("layerview/show_skin")
|
property bool show_skin: UM.Preferences.getValue("layerview/show_skin")
|
||||||
property bool show_infill: UM.Preferences.getValue("layerview/show_infill")
|
property bool show_infill: UM.Preferences.getValue("layerview/show_infill")
|
||||||
|
property bool show_purge: UM.Preferences.getValue("layerview/show_purge")
|
||||||
// if we are in compatibility mode, we only show the "line type"
|
// if we are in compatibility mode, we only show the "line type"
|
||||||
property bool show_legend: UM.LayerView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type") == 1
|
property bool show_legend: UM.LayerView.compatibilityMode ? 1 : UM.Preferences.getValue("layerview/layer_view_type") == 1
|
||||||
property bool only_show_top_layers: UM.Preferences.getValue("view/only_show_top_layers")
|
property bool only_show_top_layers: UM.Preferences.getValue("view/only_show_top_layers")
|
||||||
|
@ -157,6 +158,7 @@ Item
|
||||||
view_settings.show_helpers = UM.Preferences.getValue("layerview/show_helpers");
|
view_settings.show_helpers = UM.Preferences.getValue("layerview/show_helpers");
|
||||||
view_settings.show_skin = UM.Preferences.getValue("layerview/show_skin");
|
view_settings.show_skin = UM.Preferences.getValue("layerview/show_skin");
|
||||||
view_settings.show_infill = UM.Preferences.getValue("layerview/show_infill");
|
view_settings.show_infill = UM.Preferences.getValue("layerview/show_infill");
|
||||||
|
view_settings.show_purge = UM.Preferences.getValue("layerview/show_purge");
|
||||||
view_settings.only_show_top_layers = UM.Preferences.getValue("view/only_show_top_layers");
|
view_settings.only_show_top_layers = UM.Preferences.getValue("view/only_show_top_layers");
|
||||||
view_settings.top_layer_count = UM.Preferences.getValue("view/top_layer_count");
|
view_settings.top_layer_count = UM.Preferences.getValue("view/top_layer_count");
|
||||||
}
|
}
|
||||||
|
@ -219,6 +221,12 @@ Item
|
||||||
preference: "layerview/show_infill",
|
preference: "layerview/show_infill",
|
||||||
colorId: "layerview_infill"
|
colorId: "layerview_infill"
|
||||||
});
|
});
|
||||||
|
typesLegenModel.append({
|
||||||
|
label: catalog.i18nc("@label", "Show Purge"),
|
||||||
|
initialValue: view_settings.show_purge,
|
||||||
|
preference: "layerview/show_purge",
|
||||||
|
colorId: "layerview_purge"
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ fragment =
|
||||||
uniform int u_show_helpers;
|
uniform int u_show_helpers;
|
||||||
uniform int u_show_skin;
|
uniform int u_show_skin;
|
||||||
uniform int u_show_infill;
|
uniform int u_show_infill;
|
||||||
|
uniform int u_show_purge;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -62,6 +63,11 @@ fragment =
|
||||||
// discard movements
|
// discard movements
|
||||||
discard;
|
discard;
|
||||||
}
|
}
|
||||||
|
// purge:
|
||||||
|
if ((u_show_purge == 0) && (v_line_type >= 10.5) && (v_line_type <= 11.5)) {
|
||||||
|
// discard movements
|
||||||
|
discard;
|
||||||
|
}
|
||||||
|
|
||||||
gl_FragColor = v_color;
|
gl_FragColor = v_color;
|
||||||
}
|
}
|
||||||
|
@ -103,6 +109,7 @@ fragment41core =
|
||||||
uniform int u_show_helpers;
|
uniform int u_show_helpers;
|
||||||
uniform int u_show_skin;
|
uniform int u_show_skin;
|
||||||
uniform int u_show_infill;
|
uniform int u_show_infill;
|
||||||
|
uniform int u_show_purge;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -130,6 +137,11 @@ fragment41core =
|
||||||
// discard movements
|
// discard movements
|
||||||
discard;
|
discard;
|
||||||
}
|
}
|
||||||
|
// purge:
|
||||||
|
if ((u_show_purge == 0) && (v_line_type >= 10.5) && (v_line_type <= 11.5)) {
|
||||||
|
// discard movements
|
||||||
|
discard;
|
||||||
|
}
|
||||||
|
|
||||||
frag_color = v_color;
|
frag_color = v_color;
|
||||||
}
|
}
|
||||||
|
@ -144,6 +156,7 @@ u_show_travel_moves = 0
|
||||||
u_show_helpers = 1
|
u_show_helpers = 1
|
||||||
u_show_skin = 1
|
u_show_skin = 1
|
||||||
u_show_infill = 1
|
u_show_infill = 1
|
||||||
|
u_show_purge = 1
|
||||||
|
|
||||||
[bindings]
|
[bindings]
|
||||||
u_modelViewProjectionMatrix = model_view_projection_matrix
|
u_modelViewProjectionMatrix = model_view_projection_matrix
|
||||||
|
|
|
@ -71,6 +71,7 @@ geometry41core =
|
||||||
uniform int u_show_helpers;
|
uniform int u_show_helpers;
|
||||||
uniform int u_show_skin;
|
uniform int u_show_skin;
|
||||||
uniform int u_show_infill;
|
uniform int u_show_infill;
|
||||||
|
uniform int u_show_purge;
|
||||||
|
|
||||||
layout(lines) in;
|
layout(lines) in;
|
||||||
layout(triangle_strip, max_vertices = 26) out;
|
layout(triangle_strip, max_vertices = 26) out;
|
||||||
|
@ -125,6 +126,9 @@ geometry41core =
|
||||||
if ((u_show_infill == 0) && (v_line_type[0] == 6)) {
|
if ((u_show_infill == 0) && (v_line_type[0] == 6)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if ((u_show_purge == 0) && (v_line_type[0] == 11)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if ((v_line_type[0] == 8) || (v_line_type[0] == 9)) {
|
if ((v_line_type[0] == 8) || (v_line_type[0] == 9)) {
|
||||||
// fixed size for movements
|
// fixed size for movements
|
||||||
|
@ -246,6 +250,7 @@ u_show_travel_moves = 0
|
||||||
u_show_helpers = 1
|
u_show_helpers = 1
|
||||||
u_show_skin = 1
|
u_show_skin = 1
|
||||||
u_show_infill = 1
|
u_show_infill = 1
|
||||||
|
u_show_purge = 1
|
||||||
|
|
||||||
[bindings]
|
[bindings]
|
||||||
u_modelViewProjectionMatrix = model_view_projection_matrix
|
u_modelViewProjectionMatrix = model_view_projection_matrix
|
||||||
|
|
|
@ -246,7 +246,8 @@
|
||||||
"layerview_support_infill": [0, 255, 255, 255],
|
"layerview_support_infill": [0, 255, 255, 255],
|
||||||
"layerview_move_combing": [0, 0, 255, 255],
|
"layerview_move_combing": [0, 0, 255, 255],
|
||||||
"layerview_move_retraction": [128, 128, 255, 255],
|
"layerview_move_retraction": [128, 128, 255, 255],
|
||||||
"layerview_support_interface": [64, 192, 255, 255]
|
"layerview_support_interface": [64, 192, 255, 255],
|
||||||
|
"layerview_purge": [101, 51, 175, 255]
|
||||||
},
|
},
|
||||||
|
|
||||||
"sizes": {
|
"sizes": {
|
||||||
|
@ -306,7 +307,7 @@
|
||||||
"slider_layerview_background": [4.0, 0.0],
|
"slider_layerview_background": [4.0, 0.0],
|
||||||
"slider_layerview_margin": [1.0, 1.0],
|
"slider_layerview_margin": [1.0, 1.0],
|
||||||
|
|
||||||
"layerview_menu_size": [16.5, 21.0],
|
"layerview_menu_size": [16.5, 23.0],
|
||||||
"layerview_menu_size_compatibility": [22, 23.0],
|
"layerview_menu_size_compatibility": [22, 23.0],
|
||||||
"layerview_legend_size": [1.0, 1.0],
|
"layerview_legend_size": [1.0, 1.0],
|
||||||
"layerview_row": [11.0, 1.5],
|
"layerview_row": [11.0, 1.5],
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue