Changing the message used from the engine from Layer to LayerOptimized.

This commit is contained in:
Johan K 2016-06-15 23:23:12 +02:00 committed by Johan Kristensen
parent f184baadf0
commit 788f79f5ba
3 changed files with 50 additions and 11 deletions

View file

@ -56,6 +56,7 @@ class CuraEngineBackend(Backend):
Application.getInstance().getController().activeViewChanged.connect(self._onActiveViewChanged)
self._onActiveViewChanged()
self._stored_layer_data = []
self._stored_optimized_layer_data = []
#Triggers for when to (re)start slicing:
self._global_container_stack = None
@ -76,6 +77,7 @@ class CuraEngineBackend(Backend):
#Listeners for receiving messages from the back-end.
self._message_handlers["cura.proto.Layer"] = self._onLayerMessage
self._message_handlers["cura.proto.LayerOptimized"] = self._onOptimizedLayerMessage
self._message_handlers["cura.proto.Progress"] = self._onProgressMessage
self._message_handlers["cura.proto.GCodeLayer"] = self._onGCodeLayerMessage
self._message_handlers["cura.proto.GCodePrefix"] = self._onGCodePrefixMessage
@ -127,6 +129,7 @@ class CuraEngineBackend(Backend):
## Perform a slice of the scene.
def slice(self):
self._stored_layer_data = []
self._stored_optimized_layer_data = []
if not self._enabled or not self._global_container_stack: #We shouldn't be slicing.
return
@ -158,6 +161,7 @@ class CuraEngineBackend(Backend):
self._slicing = False
self._restart = True
self._stored_layer_data = []
self._stored_optimized_layer_data = []
if self._start_slice_job is not None:
self._start_slice_job.cancel()
@ -257,6 +261,12 @@ class CuraEngineBackend(Backend):
def _onLayerMessage(self, message):
self._stored_layer_data.append(message)
## Called when an optimized sliced layer data message is received from the engine.
#
# \param message The protobuf message containing sliced layer data.
def _onOptimizedLayerMessage(self, message):
self._stored_optimized_layer_data.append(message)
## Called when a progress message is received from the engine.
#
# \param message The protobuf message containing the slicing progress.
@ -274,9 +284,9 @@ class CuraEngineBackend(Backend):
self._slicing = False
if self._layer_view_active and (self._process_layers_job is None or not self._process_layers_job.isRunning()):
self._process_layers_job = ProcessSlicedLayersJob.ProcessSlicedLayersJob(self._stored_layer_data)
self._process_layers_job = ProcessSlicedLayersJob.ProcessSlicedLayersJob(self._stored_optimized_layer_data)
self._process_layers_job.start()
self._stored_layer_data = []
self._stored_optimized_layer_data = []
## Called when a g-code message is received from the engine.
#
@ -344,10 +354,10 @@ class CuraEngineBackend(Backend):
self._layer_view_active = True
# There is data and we're not slicing at the moment
# if we are slicing, there is no need to re-calculate the data as it will be invalid in a moment.
if self._stored_layer_data and not self._slicing:
self._process_layers_job = ProcessSlicedLayersJob.ProcessSlicedLayersJob(self._stored_layer_data)
if self._stored_optimized_layer_data and not self._slicing:
self._process_layers_job = ProcessSlicedLayersJob.ProcessSlicedLayersJob(self._stored_optimized_layer_data)
self._process_layers_job.start()
self._stored_layer_data = []
self._stored_optimized_layer_data = []
else:
self._layer_view_active = False