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!
class ThreeMFReader(MeshReader):
def __init__(self):
super().__init__()
def __init__(self, application):
super().__init__(application)
self._supported_extensions = [".3mf"]
self._root = None
self._base_name = ""
@ -158,7 +158,7 @@ class ThreeMFReader(MeshReader):
um_node.addDecorator(sliceable_decorator)
return um_node
def read(self, file_name):
def _read(self, file_name):
result = []
self._object_count = 0 # Used to name objects as there is no node name yet.
# The base object of 3mf is a zipped archive.

View file

@ -42,7 +42,7 @@ def getMetaData() -> Dict:
def register(app):
if "3MFReader.ThreeMFReader" in sys.modules:
return {"mesh_reader": ThreeMFReader.ThreeMFReader(),
return {"mesh_reader": ThreeMFReader.ThreeMFReader(app),
"workspace_reader": ThreeMFWorkspaceReader.ThreeMFWorkspaceReader()}
else:
return {}

View file

@ -12,11 +12,11 @@ from UM.PluginRegistry import PluginRegistry
# If you're zipping g-code, you might as well use gzip!
class GCodeGzReader(MeshReader):
def __init__(self):
super().__init__()
def __init__(self, application):
super().__init__(application)
self._supported_extensions = [".gcode.gz"]
def read(self, file_name):
def _read(self, file_name):
with open(file_name, "rb") as file:
file_data = file.read()
uncompressed_gcode = gzip.decompress(file_data).decode("utf-8")

View file

@ -21,4 +21,4 @@ def getMetaData():
def register(app):
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(),
"Marlin" : MarlinFlavorParser.MarlinFlavorParser()}
def __init__(self):
super(GCodeReader, self).__init__()
def __init__(self, application):
super(GCodeReader, self).__init__(application)
self._supported_extensions = [".gcode", ".g"]
self._flavor_reader = None
@ -57,7 +57,7 @@ class GCodeReader(MeshReader):
def readFromStream(self, 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:
file_data = file.read()
return self.readFromStream(file_data)

View file

@ -23,4 +23,4 @@ def getMetaData():
def register(app):
app.addNonSliceableExtension(".gcode")
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):
def __init__(self):
super(ImageReader, self).__init__()
def __init__(self, application):
super(ImageReader, self).__init__(application)
self._supported_extensions = [".jpg", ".jpeg", ".bmp", ".gif", ".png"]
self._ui = ImageReaderUI(self)
@ -44,7 +44,7 @@ class ImageReader(MeshReader):
return MeshReader.PreReadResult.cancelled
return MeshReader.PreReadResult.accepted
def read(self, file_name):
def _read(self, file_name):
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)

View file

@ -33,4 +33,4 @@ def getMetaData():
}
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
class X3DReader(MeshReader):
def __init__(self):
super().__init__()
def __init__(self, application):
super().__init__(application)
self._supported_extensions = [".x3d"]
self._namespaces = {}
# Main entry point
# Reads the file, returns a SceneNode (possibly with nested ones), or None
def read(self, file_name):
def _read(self, file_name):
try:
self.defs = {}
self.shapes = []

View file

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