|
@@ -66,6 +66,10 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
|
|
|
|
|
node.boundingBoxChanged.connect(self._onChanged)
|
|
|
|
|
|
+ per_object_stack = node.callDecoration("getStack")
|
|
|
+ if per_object_stack:
|
|
|
+ per_object_stack.propertyChanged.connect(self._onSettingValueChanged)
|
|
|
+
|
|
|
self._onChanged()
|
|
|
|
|
|
## Force that a new (empty) object is created upon copy.
|
|
@@ -76,7 +80,8 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
|
|
def getConvexHull(self) -> Optional[Polygon]:
|
|
|
if self._node is None:
|
|
|
return None
|
|
|
-
|
|
|
+ if self._node.callDecoration("isNonPrintingMesh"):
|
|
|
+ return None
|
|
|
hull = self._compute2DConvexHull()
|
|
|
|
|
|
if self._global_stack and self._node is not None and hull is not None:
|
|
@@ -106,7 +111,8 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
|
|
def getConvexHullHead(self) -> Optional[Polygon]:
|
|
|
if self._node is None:
|
|
|
return None
|
|
|
-
|
|
|
+ if self._node.callDecoration("isNonPrintingMesh"):
|
|
|
+ return None
|
|
|
if self._global_stack:
|
|
|
if self._global_stack.getProperty("print_sequence", "value") == "one_at_a_time" and not self.hasGroupAsParent(self._node):
|
|
|
head_with_fans = self._compute2DConvexHeadMin()
|
|
@@ -122,6 +128,9 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
|
|
def getConvexHullBoundary(self) -> Optional[Polygon]:
|
|
|
if self._node is None:
|
|
|
return None
|
|
|
+
|
|
|
+ if self._node.callDecoration("isNonPrintingMesh"):
|
|
|
+ return None
|
|
|
|
|
|
if self._global_stack:
|
|
|
if self._global_stack.getProperty("print_sequence", "value") == "one_at_a_time" and not self.hasGroupAsParent(self._node):
|
|
@@ -398,4 +407,4 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
|
|
## Settings that change the convex hull.
|
|
|
#
|
|
|
# If these settings change, the convex hull should be recalculated.
|
|
|
- _influencing_settings = {"xy_offset", "xy_offset_layer_0", "mold_enabled", "mold_width"}
|
|
|
+ _influencing_settings = {"xy_offset", "xy_offset_layer_0", "mold_enabled", "mold_width", "anti_overhang_mesh", "infill_mesh", "cutting_mesh"}
|