Add colour scheme for line width

Implements CURA-7741.
This commit is contained in:
Ghostkeeper 2021-02-18 14:09:17 +01:00
parent 0c9175d7f7
commit dc68fbc94a
No known key found for this signature in database
GPG key ID: D2A8871EE34EC59A
5 changed files with 68 additions and 3 deletions

View file

@ -91,6 +91,8 @@ class SimulationView(CuraView):
self._min_feedrate = sys.float_info.max
self._max_thickness = sys.float_info.min
self._min_thickness = sys.float_info.max
self._max_line_width = sys.float_info.min
self._min_line_width = sys.float_info.max
self._global_container_stack = None # type: Optional[ContainerStack]
self._proxy = None
@ -220,6 +222,8 @@ class SimulationView(CuraView):
self._min_feedrate = sys.float_info.max
self._max_thickness = sys.float_info.min
self._min_thickness = sys.float_info.max
self._max_line_width = sys.float_info.min
self._min_line_width = sys.float_info.max
def beginRendering(self) -> None:
scene = self.getController().getScene()
@ -386,6 +390,14 @@ class SimulationView(CuraView):
def getMaxThickness(self) -> float:
return self._max_thickness
def getMaxLineWidth(self) -> float:
return self._max_line_width
def getMinLineWidth(self) -> float:
if abs(self._min_line_width - sys.float_info.max) < 10: # Some lenience due to floating point rounding.
return 0.0 # If it's still max-float, there are no measurements. Use 0 then.
return self._min_line_width
def calculateMaxLayers(self) -> None:
scene = self.getController().getScene()
@ -410,6 +422,8 @@ class SimulationView(CuraView):
for p in layer_data.getLayer(layer_id).polygons:
self._max_feedrate = max(float(p.lineFeedrates.max()), self._max_feedrate)
self._min_feedrate = min(float(p.lineFeedrates.min()), self._min_feedrate)
self._max_line_width = max(float(p.lineWidths.max()), self._max_line_width)
self._min_line_width = min(float(p.lineWidths.min()), self._min_line_width)
self._max_thickness = max(float(p.lineThicknesses.max()), self._max_thickness)
try:
self._min_thickness = min(float(p.lineThicknesses[numpy.nonzero(p.lineThicknesses)].min()), self._min_thickness)