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,9 +18,13 @@ class LayerPolygon:
|
|||
MoveCombingType = 8
|
||||
MoveRetractionType = 9
|
||||
SupportInterfaceType = 10
|
||||
__number_of_types = 11
|
||||
PurgeType = 11
|
||||
|
||||
__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)
|
||||
__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)
|
||||
|
||||
## LayerPolygon, used in ProcessSlicedLayersJob
|
||||
# \param extruder
|
||||
|
@ -222,7 +226,8 @@ class LayerPolygon:
|
|||
theme.getColor("layerview_support_infill").getRgbF(), # SupportInfillType
|
||||
theme.getColor("layerview_move_combing").getRgbF(), # MoveCombingType
|
||||
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
|
||||
|
|
|
@ -51,6 +51,7 @@ class LayerPass(RenderPass):
|
|||
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_infill", self._layer_view.getShowInfill())
|
||||
self._layer_shader.setUniformValue("u_show_purge", self._layer_view.getShowPurge())
|
||||
else:
|
||||
#defaults
|
||||
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_skin", 1)
|
||||
self._layer_shader.setUniformValue("u_show_infill", 1)
|
||||
self._layer_shader.setUniformValue("u_show_purge", 1)
|
||||
|
||||
if not self._tool_handle_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_skin", True)
|
||||
Preferences.getInstance().addPreference("layerview/show_infill", True)
|
||||
Preferences.getInstance().addPreference("layerview/show_purge", True)
|
||||
|
||||
Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged)
|
||||
self._updateWithPreferences()
|
||||
|
@ -100,6 +101,7 @@ class LayerView(View):
|
|||
self._show_helpers = 1
|
||||
self._show_skin = 1
|
||||
self._show_infill = 1
|
||||
self._show_purge = 1
|
||||
|
||||
def getActivity(self):
|
||||
return self._activity
|
||||
|
@ -237,6 +239,13 @@ class LayerView(View):
|
|||
def getShowInfill(self):
|
||||
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):
|
||||
return self._compatibility_mode
|
||||
|
||||
|
@ -408,6 +417,7 @@ class LayerView(View):
|
|||
self.setShowHelpers(bool(Preferences.getInstance().getValue("layerview/show_helpers")))
|
||||
self.setShowSkin(bool(Preferences.getInstance().getValue("layerview/show_skin")))
|
||||
self.setShowInfill(bool(Preferences.getInstance().getValue("layerview/show_infill")))
|
||||
self.setShowPurge(bool(Preferences.getInstance().getValue("layerview/show_purge")))
|
||||
|
||||
self._startUpdateTopLayers()
|
||||
self.preferencesChanged.emit()
|
||||
|
@ -423,6 +433,7 @@ class LayerView(View):
|
|||
"layerview/show_helpers",
|
||||
"layerview/show_skin",
|
||||
"layerview/show_infill",
|
||||
"layerview/show_purge",
|
||||
}:
|
||||
return
|
||||
|
||||
|
|
|
@ -43,6 +43,7 @@ Item
|
|||
property bool show_helpers: UM.Preferences.getValue("layerview/show_helpers")
|
||||
property bool show_skin: UM.Preferences.getValue("layerview/show_skin")
|
||||
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"
|
||||
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")
|
||||
|
@ -157,6 +158,7 @@ Item
|
|||
view_settings.show_helpers = UM.Preferences.getValue("layerview/show_helpers");
|
||||
view_settings.show_skin = UM.Preferences.getValue("layerview/show_skin");
|
||||
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.top_layer_count = UM.Preferences.getValue("view/top_layer_count");
|
||||
}
|
||||
|
@ -219,6 +221,12 @@ Item
|
|||
preference: "layerview/show_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_skin;
|
||||
uniform int u_show_infill;
|
||||
uniform int u_show_purge;
|
||||
|
||||
void main()
|
||||
{
|
||||
|
@ -62,6 +63,11 @@ fragment =
|
|||
// discard movements
|
||||
discard;
|
||||
}
|
||||
// purge:
|
||||
if ((u_show_purge == 0) && (v_line_type >= 10.5) && (v_line_type <= 11.5)) {
|
||||
// discard movements
|
||||
discard;
|
||||
}
|
||||
|
||||
gl_FragColor = v_color;
|
||||
}
|
||||
|
@ -103,6 +109,7 @@ fragment41core =
|
|||
uniform int u_show_helpers;
|
||||
uniform int u_show_skin;
|
||||
uniform int u_show_infill;
|
||||
uniform int u_show_purge;
|
||||
|
||||
void main()
|
||||
{
|
||||
|
@ -130,6 +137,11 @@ fragment41core =
|
|||
// discard movements
|
||||
discard;
|
||||
}
|
||||
// purge:
|
||||
if ((u_show_purge == 0) && (v_line_type >= 10.5) && (v_line_type <= 11.5)) {
|
||||
// discard movements
|
||||
discard;
|
||||
}
|
||||
|
||||
frag_color = v_color;
|
||||
}
|
||||
|
@ -144,6 +156,7 @@ u_show_travel_moves = 0
|
|||
u_show_helpers = 1
|
||||
u_show_skin = 1
|
||||
u_show_infill = 1
|
||||
u_show_purge = 1
|
||||
|
||||
[bindings]
|
||||
u_modelViewProjectionMatrix = model_view_projection_matrix
|
||||
|
|
|
@ -71,6 +71,7 @@ geometry41core =
|
|||
uniform int u_show_helpers;
|
||||
uniform int u_show_skin;
|
||||
uniform int u_show_infill;
|
||||
uniform int u_show_purge;
|
||||
|
||||
layout(lines) in;
|
||||
layout(triangle_strip, max_vertices = 26) out;
|
||||
|
@ -125,6 +126,9 @@ geometry41core =
|
|||
if ((u_show_infill == 0) && (v_line_type[0] == 6)) {
|
||||
return;
|
||||
}
|
||||
if ((u_show_purge == 0) && (v_line_type[0] == 11)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((v_line_type[0] == 8) || (v_line_type[0] == 9)) {
|
||||
// fixed size for movements
|
||||
|
@ -246,6 +250,7 @@ u_show_travel_moves = 0
|
|||
u_show_helpers = 1
|
||||
u_show_skin = 1
|
||||
u_show_infill = 1
|
||||
u_show_purge = 1
|
||||
|
||||
[bindings]
|
||||
u_modelViewProjectionMatrix = model_view_projection_matrix
|
||||
|
|
|
@ -246,7 +246,8 @@
|
|||
"layerview_support_infill": [0, 255, 255, 255],
|
||||
"layerview_move_combing": [0, 0, 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": {
|
||||
|
@ -306,7 +307,7 @@
|
|||
"slider_layerview_background": [4.0, 0.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_legend_size": [1.0, 1.0],
|
||||
"layerview_row": [11.0, 1.5],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue