mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-25 07:33:57 -06:00
Merge branch 'master' of https://github.com/Ultimaker/Cura
This commit is contained in:
commit
43a3ea853a
3 changed files with 14 additions and 17 deletions
|
@ -546,12 +546,12 @@ class CuraApplication(QtApplication):
|
||||||
for _ in range(count):
|
for _ in range(count):
|
||||||
if node.getParent() and node.getParent().callDecoration("isGroup"):
|
if node.getParent() and node.getParent().callDecoration("isGroup"):
|
||||||
new_node = copy.deepcopy(node.getParent()) #Copy the group node.
|
new_node = copy.deepcopy(node.getParent()) #Copy the group node.
|
||||||
new_node.callDecoration("setConvexHull",None)
|
new_node.callDecoration("recomputeConvexHull")
|
||||||
|
|
||||||
op.addOperation(AddSceneNodeOperation(new_node,node.getParent().getParent()))
|
op.addOperation(AddSceneNodeOperation(new_node,node.getParent().getParent()))
|
||||||
else:
|
else:
|
||||||
new_node = copy.deepcopy(node)
|
new_node = copy.deepcopy(node)
|
||||||
new_node.callDecoration("setConvexHull", None)
|
new_node.callDecoration("recomputeConvexHull")
|
||||||
op.addOperation(AddSceneNodeOperation(new_node, node.getParent()))
|
op.addOperation(AddSceneNodeOperation(new_node, node.getParent()))
|
||||||
|
|
||||||
op.push()
|
op.push()
|
||||||
|
|
|
@ -7,7 +7,6 @@ from UM.Scene.SceneNode import SceneNode
|
||||||
from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator
|
from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator
|
||||||
from UM.Math.Vector import Vector
|
from UM.Math.Vector import Vector
|
||||||
from UM.Math.AxisAlignedBox import AxisAlignedBox
|
from UM.Math.AxisAlignedBox import AxisAlignedBox
|
||||||
from UM.Application import Application
|
|
||||||
from UM.Scene.Selection import Selection
|
from UM.Scene.Selection import Selection
|
||||||
from UM.Preferences import Preferences
|
from UM.Preferences import Preferences
|
||||||
|
|
||||||
|
@ -16,8 +15,6 @@ from cura.ConvexHullDecorator import ConvexHullDecorator
|
||||||
from . import PlatformPhysicsOperation
|
from . import PlatformPhysicsOperation
|
||||||
from . import ZOffsetDecorator
|
from . import ZOffsetDecorator
|
||||||
|
|
||||||
import copy
|
|
||||||
|
|
||||||
class PlatformPhysics:
|
class PlatformPhysics:
|
||||||
def __init__(self, controller, volume):
|
def __init__(self, controller, volume):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
@ -100,18 +97,15 @@ class PlatformPhysics:
|
||||||
# continue
|
# continue
|
||||||
|
|
||||||
# Get the overlap distance for both convex hulls. If this returns None, there is no intersection.
|
# Get the overlap distance for both convex hulls. If this returns None, there is no intersection.
|
||||||
try:
|
head_hull = node.callDecoration("getConvexHullHead")
|
||||||
head_hull = node.callDecoration("getConvexHullHead")
|
if head_hull:
|
||||||
if head_hull:
|
overlap = head_hull.intersectsPolygon(other_node.callDecoration("getConvexHull"))
|
||||||
overlap = head_hull.intersectsPolygon(other_node.callDecoration("getConvexHull"))
|
if not overlap:
|
||||||
if not overlap:
|
other_head_hull = other_node.callDecoration("getConvexHullHead")
|
||||||
other_head_hull = other_node.callDecoration("getConvexHullHead")
|
if other_head_hull:
|
||||||
if other_head_hull:
|
overlap = node.callDecoration("getConvexHull").intersectsPolygon(other_head_hull)
|
||||||
overlap = node.callDecoration("getConvexHull").intersectsPolygon(other_head_hull)
|
else:
|
||||||
else:
|
overlap = node.callDecoration("getConvexHull").intersectsPolygon(other_node.callDecoration("getConvexHull"))
|
||||||
overlap = node.callDecoration("getConvexHull").intersectsPolygon(other_node.callDecoration("getConvexHull"))
|
|
||||||
except:
|
|
||||||
overlap = None #It can sometimes occur that the calculated convex hull has no size, in which case there is no overlap.
|
|
||||||
|
|
||||||
if overlap is None:
|
if overlap is None:
|
||||||
continue
|
continue
|
||||||
|
|
|
@ -10,3 +10,6 @@ class ZOffsetDecorator(SceneNodeDecorator):
|
||||||
|
|
||||||
def getZOffset(self):
|
def getZOffset(self):
|
||||||
return self._z_offset
|
return self._z_offset
|
||||||
|
|
||||||
|
def __deepcopy__(self, memo):
|
||||||
|
return ZOffsetDecorator()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue