mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
CURA-5164 Make the mesh readers compliant with the new signature of the mesh reader. Also adapt the tests.
This commit is contained in:
parent
39768e29cc
commit
ddd7b056f3
10 changed files with 20 additions and 20 deletions
|
@ -44,8 +44,8 @@ except ImportError:
|
||||||
|
|
||||||
## Base implementation for reading 3MF files. Has no support for textures. Only loads meshes!
|
## Base implementation for reading 3MF files. Has no support for textures. Only loads meshes!
|
||||||
class ThreeMFReader(MeshReader):
|
class ThreeMFReader(MeshReader):
|
||||||
def __init__(self):
|
def __init__(self, application):
|
||||||
super().__init__()
|
super().__init__(application)
|
||||||
self._supported_extensions = [".3mf"]
|
self._supported_extensions = [".3mf"]
|
||||||
self._root = None
|
self._root = None
|
||||||
self._base_name = ""
|
self._base_name = ""
|
||||||
|
@ -158,7 +158,7 @@ class ThreeMFReader(MeshReader):
|
||||||
um_node.addDecorator(sliceable_decorator)
|
um_node.addDecorator(sliceable_decorator)
|
||||||
return um_node
|
return um_node
|
||||||
|
|
||||||
def read(self, file_name):
|
def _read(self, file_name):
|
||||||
result = []
|
result = []
|
||||||
self._object_count = 0 # Used to name objects as there is no node name yet.
|
self._object_count = 0 # Used to name objects as there is no node name yet.
|
||||||
# The base object of 3mf is a zipped archive.
|
# The base object of 3mf is a zipped archive.
|
||||||
|
|
|
@ -42,7 +42,7 @@ def getMetaData() -> Dict:
|
||||||
|
|
||||||
def register(app):
|
def register(app):
|
||||||
if "3MFReader.ThreeMFReader" in sys.modules:
|
if "3MFReader.ThreeMFReader" in sys.modules:
|
||||||
return {"mesh_reader": ThreeMFReader.ThreeMFReader(),
|
return {"mesh_reader": ThreeMFReader.ThreeMFReader(app),
|
||||||
"workspace_reader": ThreeMFWorkspaceReader.ThreeMFWorkspaceReader()}
|
"workspace_reader": ThreeMFWorkspaceReader.ThreeMFWorkspaceReader()}
|
||||||
else:
|
else:
|
||||||
return {}
|
return {}
|
||||||
|
|
|
@ -12,11 +12,11 @@ from UM.PluginRegistry import PluginRegistry
|
||||||
# If you're zipping g-code, you might as well use gzip!
|
# If you're zipping g-code, you might as well use gzip!
|
||||||
class GCodeGzReader(MeshReader):
|
class GCodeGzReader(MeshReader):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self, application):
|
||||||
super().__init__()
|
super().__init__(application)
|
||||||
self._supported_extensions = [".gcode.gz"]
|
self._supported_extensions = [".gcode.gz"]
|
||||||
|
|
||||||
def read(self, file_name):
|
def _read(self, file_name):
|
||||||
with open(file_name, "rb") as file:
|
with open(file_name, "rb") as file:
|
||||||
file_data = file.read()
|
file_data = file.read()
|
||||||
uncompressed_gcode = gzip.decompress(file_data).decode("utf-8")
|
uncompressed_gcode = gzip.decompress(file_data).decode("utf-8")
|
||||||
|
|
|
@ -21,4 +21,4 @@ def getMetaData():
|
||||||
|
|
||||||
def register(app):
|
def register(app):
|
||||||
app.addNonSliceableExtension(".gz")
|
app.addNonSliceableExtension(".gz")
|
||||||
return { "mesh_reader": GCodeGzReader.GCodeGzReader() }
|
return { "mesh_reader": GCodeGzReader.GCodeGzReader(app) }
|
||||||
|
|
|
@ -27,8 +27,8 @@ class GCodeReader(MeshReader):
|
||||||
_flavor_readers_dict = {"RepRap" : RepRapFlavorParser.RepRapFlavorParser(),
|
_flavor_readers_dict = {"RepRap" : RepRapFlavorParser.RepRapFlavorParser(),
|
||||||
"Marlin" : MarlinFlavorParser.MarlinFlavorParser()}
|
"Marlin" : MarlinFlavorParser.MarlinFlavorParser()}
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self, application):
|
||||||
super(GCodeReader, self).__init__()
|
super(GCodeReader, self).__init__(application)
|
||||||
self._supported_extensions = [".gcode", ".g"]
|
self._supported_extensions = [".gcode", ".g"]
|
||||||
self._flavor_reader = None
|
self._flavor_reader = None
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ class GCodeReader(MeshReader):
|
||||||
def readFromStream(self, stream):
|
def readFromStream(self, stream):
|
||||||
return self._flavor_reader.processGCodeStream(stream)
|
return self._flavor_reader.processGCodeStream(stream)
|
||||||
|
|
||||||
def read(self, file_name):
|
def _read(self, file_name):
|
||||||
with open(file_name, "r", encoding = "utf-8") as file:
|
with open(file_name, "r", encoding = "utf-8") as file:
|
||||||
file_data = file.read()
|
file_data = file.read()
|
||||||
return self.readFromStream(file_data)
|
return self.readFromStream(file_data)
|
||||||
|
|
|
@ -23,4 +23,4 @@ def getMetaData():
|
||||||
def register(app):
|
def register(app):
|
||||||
app.addNonSliceableExtension(".gcode")
|
app.addNonSliceableExtension(".gcode")
|
||||||
app.addNonSliceableExtension(".g")
|
app.addNonSliceableExtension(".g")
|
||||||
return { "mesh_reader": GCodeReader.GCodeReader() }
|
return { "mesh_reader": GCodeReader.GCodeReader(app) }
|
||||||
|
|
|
@ -17,8 +17,8 @@ from cura.Scene.CuraSceneNode import CuraSceneNode as SceneNode
|
||||||
|
|
||||||
|
|
||||||
class ImageReader(MeshReader):
|
class ImageReader(MeshReader):
|
||||||
def __init__(self):
|
def __init__(self, application):
|
||||||
super(ImageReader, self).__init__()
|
super(ImageReader, self).__init__(application)
|
||||||
self._supported_extensions = [".jpg", ".jpeg", ".bmp", ".gif", ".png"]
|
self._supported_extensions = [".jpg", ".jpeg", ".bmp", ".gif", ".png"]
|
||||||
self._ui = ImageReaderUI(self)
|
self._ui = ImageReaderUI(self)
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ class ImageReader(MeshReader):
|
||||||
return MeshReader.PreReadResult.cancelled
|
return MeshReader.PreReadResult.cancelled
|
||||||
return MeshReader.PreReadResult.accepted
|
return MeshReader.PreReadResult.accepted
|
||||||
|
|
||||||
def read(self, file_name):
|
def _read(self, file_name):
|
||||||
size = max(self._ui.getWidth(), self._ui.getDepth())
|
size = max(self._ui.getWidth(), self._ui.getDepth())
|
||||||
return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.image_color_invert)
|
return self._generateSceneNode(file_name, size, self._ui.peak_height, self._ui.base_height, self._ui.smoothing, 512, self._ui.image_color_invert)
|
||||||
|
|
||||||
|
|
|
@ -33,4 +33,4 @@ def getMetaData():
|
||||||
}
|
}
|
||||||
|
|
||||||
def register(app):
|
def register(app):
|
||||||
return { "mesh_reader": ImageReader.ImageReader() }
|
return { "mesh_reader": ImageReader.ImageReader(app) }
|
||||||
|
|
|
@ -38,14 +38,14 @@ class Shape:
|
||||||
self.name = name
|
self.name = name
|
||||||
|
|
||||||
class X3DReader(MeshReader):
|
class X3DReader(MeshReader):
|
||||||
def __init__(self):
|
def __init__(self, application):
|
||||||
super().__init__()
|
super().__init__(application)
|
||||||
self._supported_extensions = [".x3d"]
|
self._supported_extensions = [".x3d"]
|
||||||
self._namespaces = {}
|
self._namespaces = {}
|
||||||
|
|
||||||
# Main entry point
|
# Main entry point
|
||||||
# Reads the file, returns a SceneNode (possibly with nested ones), or None
|
# Reads the file, returns a SceneNode (possibly with nested ones), or None
|
||||||
def read(self, file_name):
|
def _read(self, file_name):
|
||||||
try:
|
try:
|
||||||
self.defs = {}
|
self.defs = {}
|
||||||
self.shapes = []
|
self.shapes = []
|
||||||
|
|
|
@ -16,4 +16,4 @@ def getMetaData():
|
||||||
}
|
}
|
||||||
|
|
||||||
def register(app):
|
def register(app):
|
||||||
return { "mesh_reader": X3DReader.X3DReader() }
|
return { "mesh_reader": X3DReader.X3DReader(app) }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue