CURA-5164 Make the mesh readers compliant with the new signature of the mesh reader. Also adapt the tests.

This commit is contained in:
Diego Prado Gesto 2018-05-23 17:17:41 +02:00
parent 39768e29cc
commit ddd7b056f3
10 changed files with 20 additions and 20 deletions

View file

@ -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.

View file

@ -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 {}

View file

@ -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")

View file

@ -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) }

View file

@ -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)

View file

@ -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) }

View file

@ -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)

View file

@ -33,4 +33,4 @@ def getMetaData():
} }
def register(app): def register(app):
return { "mesh_reader": ImageReader.ImageReader() } return { "mesh_reader": ImageReader.ImageReader(app) }

View file

@ -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 = []

View file

@ -16,4 +16,4 @@ def getMetaData():
} }
def register(app): def register(app):
return { "mesh_reader": X3DReader.X3DReader() } return { "mesh_reader": X3DReader.X3DReader(app) }