mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 14:37:29 -06:00
D6: Moved decorator to cura
This commit is contained in:
parent
3605403314
commit
620a3891da
5 changed files with 54 additions and 34 deletions
|
@ -28,6 +28,7 @@ from UM.Operations.GroupedOperation import GroupedOperation
|
|||
from UM.Operations.SetTransformOperation import SetTransformOperation
|
||||
from UM.Operations.TranslateOperation import TranslateOperation
|
||||
from cura.SetParentOperation import SetParentOperation
|
||||
from cura.SliceableObjectDecorator import SliceableObjectDecorator
|
||||
|
||||
from UM.Settings.SettingDefinition import SettingDefinition, DefinitionPropertyType
|
||||
from UM.Settings.ContainerRegistry import ContainerRegistry
|
||||
|
@ -1088,6 +1089,16 @@ class CuraApplication(QtApplication):
|
|||
extension = os.path.splitext(filename)[1]
|
||||
if extension.lower() in self._non_sliceable_extensions:
|
||||
self.changeLayerViewSignal.emit()
|
||||
sliceable_decorator = SliceableObjectDecorator()
|
||||
sliceable_decorator.setBlockSlicing(True)
|
||||
sliceable_decorator.setSliceable(False)
|
||||
node.addDecorator(sliceable_decorator)
|
||||
else:
|
||||
sliceable_decorator = SliceableObjectDecorator()
|
||||
sliceable_decorator.setBlockSlicing(False)
|
||||
sliceable_decorator.setSliceable(True)
|
||||
node.addDecorator(sliceable_decorator)
|
||||
|
||||
|
||||
scene = self.getController().getScene()
|
||||
|
||||
|
|
21
cura/SliceableObjectDecorator.py
Normal file
21
cura/SliceableObjectDecorator.py
Normal file
|
@ -0,0 +1,21 @@
|
|||
from UM.Scene.SceneNodeDecorator import SceneNodeDecorator
|
||||
|
||||
|
||||
## Simple decorator to indicate a scene node is sliceable or not.
|
||||
class SliceableObjectDecorator(SceneNodeDecorator):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self._sliceable = True
|
||||
self._block_slicing = False
|
||||
|
||||
def isSliceable(self):
|
||||
return self._sliceable
|
||||
|
||||
def setSliceable(self, sliceable):
|
||||
self._sliceable = sliceable
|
||||
|
||||
def shouldBlockSlicing(self):
|
||||
return self._block_slicing
|
||||
|
||||
def setBlockSlicing(self, block_slicing):
|
||||
self._block_slicing = block_slicing
|
|
@ -1,23 +1,23 @@
|
|||
# Copyright (c) 2015 Ultimaker B.V.
|
||||
# Cura is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
from UM.Mesh.MeshReader import MeshReader
|
||||
from UM.Mesh.MeshBuilder import MeshBuilder
|
||||
import math
|
||||
import os.path
|
||||
import zipfile
|
||||
|
||||
from UM.Job import Job
|
||||
from UM.Logger import Logger
|
||||
from UM.Math.Matrix import Matrix
|
||||
from UM.Math.Vector import Vector
|
||||
from UM.Scene.SceneNode import SceneNode
|
||||
from UM.Mesh.MeshBuilder import MeshBuilder
|
||||
from UM.Mesh.MeshReader import MeshReader
|
||||
from UM.Scene.GroupDecorator import GroupDecorator
|
||||
import UM.Application
|
||||
from UM.Job import Job
|
||||
from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator
|
||||
from UM.Application import Application
|
||||
from cura.Settings.ExtruderManager import ExtruderManager
|
||||
from cura.QualityManager import QualityManager
|
||||
from UM.Scene.SliceableObjectDecorator import SliceableObjectDecorator
|
||||
|
||||
import os.path
|
||||
import zipfile
|
||||
from UM.Scene.SceneNode import SceneNode
|
||||
|
||||
try:
|
||||
import xml.etree.cElementTree as ET
|
||||
|
@ -235,8 +235,6 @@ class ThreeMFReader(MeshReader):
|
|||
except Exception as e:
|
||||
Logger.log("e", "An exception occurred in 3mf reader: %s", e)
|
||||
|
||||
sliceable_decorator = SliceableObjectDecorator()
|
||||
result.addDecorator(sliceable_decorator)
|
||||
return result
|
||||
|
||||
## Create a scale vector based on a unit string.
|
||||
|
|
|
@ -1,25 +1,22 @@
|
|||
# Copyright (c) 2016 Aleph Objects, Inc.
|
||||
# Cura is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
from UM.Mesh.MeshReader import MeshReader
|
||||
import os
|
||||
from UM.Scene.SceneNode import SceneNode
|
||||
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
||||
from UM.Math.Vector import Vector
|
||||
from UM.Math.AxisAlignedBox import AxisAlignedBox
|
||||
from UM.Application import Application
|
||||
from UM.Message import Message
|
||||
from UM.Logger import Logger
|
||||
from UM.Backend.Backend import BackendState
|
||||
|
||||
from UM.Math.AxisAlignedBox import AxisAlignedBox
|
||||
from UM.Math.Vector import Vector
|
||||
from UM.Mesh.MeshReader import MeshReader
|
||||
from UM.Message import Message
|
||||
from UM.Scene.SceneNode import SceneNode
|
||||
from UM.i18n import i18nCatalog
|
||||
|
||||
catalog = i18nCatalog("cura")
|
||||
|
||||
|
||||
from cura import LayerDataBuilder
|
||||
from cura import LayerDataDecorator
|
||||
from cura.LayerPolygon import LayerPolygon
|
||||
from UM.Scene.SliceableObjectDecorator import SliceableObjectDecorator
|
||||
from cura.SliceableObjectDecorator import SliceableObjectDecorator
|
||||
|
||||
import numpy
|
||||
import math
|
||||
|
@ -263,12 +260,6 @@ class GCodeReader(MeshReader):
|
|||
decorator = LayerDataDecorator.LayerDataDecorator()
|
||||
decorator.setLayerData(layer_mesh)
|
||||
scene_node.addDecorator(decorator)
|
||||
|
||||
sliceable_decorator = SliceableObjectDecorator()
|
||||
sliceable_decorator.setBlockSlicing(True)
|
||||
sliceable_decorator.setSliceable(False)
|
||||
scene_node.addDecorator(sliceable_decorator)
|
||||
|
||||
Application.getInstance().getController().getScene().gcode_list = glist
|
||||
|
||||
Logger.log("d", "Finished parsing %s" % file_name)
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
# Contributed by Seva Alekseyev <sevaa@nih.gov> with National Institutes of Health, 2016
|
||||
# Cura is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
from UM.Mesh.MeshReader import MeshReader
|
||||
from UM.Mesh.MeshBuilder import MeshBuilder
|
||||
from math import pi, sin, cos, sqrt
|
||||
|
||||
import numpy
|
||||
|
||||
from UM.Job import Job
|
||||
from UM.Logger import Logger
|
||||
from UM.Math.Matrix import Matrix
|
||||
from UM.Math.Vector import Vector
|
||||
from UM.Mesh.MeshBuilder import MeshBuilder
|
||||
from UM.Mesh.MeshReader import MeshReader
|
||||
from UM.Scene.SceneNode import SceneNode
|
||||
from UM.Job import Job
|
||||
from math import pi, sin, cos, sqrt
|
||||
import numpy
|
||||
from UM.Scene.SliceableObjectDecorator import SliceableObjectDecorator
|
||||
|
||||
try:
|
||||
import xml.etree.cElementTree as ET
|
||||
|
@ -97,8 +98,6 @@ class X3DReader(MeshReader):
|
|||
Logger.logException("e", "Exception in X3D reader")
|
||||
return None
|
||||
|
||||
sliceable_decorator = SliceableObjectDecorator()
|
||||
node.addDecorator(sliceable_decorator)
|
||||
return node
|
||||
|
||||
# ------------------------- XML tree traversal
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue