mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-16 03:07:53 -06:00
Compute disallowed border size only once
We pass it on through a parameter instead of computing it again in the function. Contributes to issue CURA-2625.
This commit is contained in:
parent
bcd4dd3aeb
commit
ec057c72a6
1 changed files with 14 additions and 13 deletions
|
@ -379,7 +379,7 @@ class BuildVolume(SceneNode):
|
|||
self._error_areas = []
|
||||
|
||||
disallowed_border_size = self._getEdgeDisallowedSize()
|
||||
result_areas = self._computeDisallowedAreasStatic()
|
||||
result_areas = self._computeDisallowedAreasStatic(disallowed_border_size)
|
||||
|
||||
machine_width = self._global_container_stack.getProperty("machine_width", "value")
|
||||
machine_depth = self._global_container_stack.getProperty("machine_depth", "value")
|
||||
|
@ -481,49 +481,50 @@ class BuildVolume(SceneNode):
|
|||
# These disallowed areas need to be offset with the negative of the nozzle
|
||||
# offset to check if the disallowed areas are intersected.
|
||||
#
|
||||
# \param border_size The size with which to offset the disallowed areas
|
||||
# due to skirt, brim, travel avoid distance, etc.
|
||||
# \return A list of polygons that represent the disallowed areas. These
|
||||
# areas are not offset with any nozzle offset yet.
|
||||
def _computeDisallowedAreasStatic(self):
|
||||
def _computeDisallowedAreasStatic(self, border_size):
|
||||
result = []
|
||||
if not self._global_container_stack:
|
||||
return result
|
||||
disallowed_border_size = self._getEdgeDisallowedSize()
|
||||
|
||||
machine_disallowed_areas = copy.deepcopy(self._global_container_stack.getProperty("machine_disallowed_areas", "value"))
|
||||
if machine_disallowed_areas:
|
||||
for area in machine_disallowed_areas:
|
||||
polygon = Polygon(numpy.array(area, numpy.float32))
|
||||
polygon = polygon.getMinkowskiHull(Polygon.approximatedCircle(disallowed_border_size))
|
||||
polygon = polygon.getMinkowskiHull(Polygon.approximatedCircle(border_size))
|
||||
result.append(polygon)
|
||||
|
||||
#Add the border around the edge of the build volume.
|
||||
if disallowed_border_size == 0:
|
||||
if border_size == 0:
|
||||
return result #No need to add this border.
|
||||
half_machine_width = self._global_container_stack.getProperty("machine_width", "value") / 2
|
||||
half_machine_depth = self._global_container_stack.getProperty("machine_depth", "value") / 2
|
||||
result.append(Polygon(numpy.array([
|
||||
[-half_machine_width, -half_machine_depth],
|
||||
[-half_machine_width, half_machine_depth],
|
||||
[-half_machine_width + disallowed_border_size, half_machine_depth - disallowed_border_size],
|
||||
[-half_machine_width + disallowed_border_size, -half_machine_depth + disallowed_border_size]
|
||||
[-half_machine_width + border_size, half_machine_depth - border_size],
|
||||
[-half_machine_width + border_size, -half_machine_depth + border_size]
|
||||
], numpy.float32)))
|
||||
result.append(Polygon(numpy.array([
|
||||
[half_machine_width, half_machine_depth],
|
||||
[half_machine_width, -half_machine_depth],
|
||||
[half_machine_width - disallowed_border_size, -half_machine_depth + disallowed_border_size],
|
||||
[half_machine_width - disallowed_border_size, half_machine_depth - disallowed_border_size]
|
||||
[half_machine_width - border_size, -half_machine_depth + border_size],
|
||||
[half_machine_width - border_size, half_machine_depth - border_size]
|
||||
], numpy.float32)))
|
||||
result.append(Polygon(numpy.array([
|
||||
[-half_machine_width, half_machine_depth],
|
||||
[half_machine_width, half_machine_depth],
|
||||
[half_machine_width - disallowed_border_size, half_machine_depth - disallowed_border_size],
|
||||
[-half_machine_width + disallowed_border_size, half_machine_depth - disallowed_border_size]
|
||||
[half_machine_width - border_size, half_machine_depth - border_size],
|
||||
[-half_machine_width + border_size, half_machine_depth - border_size]
|
||||
], numpy.float32)))
|
||||
result.append(Polygon(numpy.array([
|
||||
[half_machine_width, -half_machine_depth],
|
||||
[-half_machine_width, -half_machine_depth],
|
||||
[-half_machine_width + disallowed_border_size, -half_machine_depth + disallowed_border_size],
|
||||
[half_machine_width - disallowed_border_size, -half_machine_depth + disallowed_border_size]
|
||||
[-half_machine_width + border_size, -half_machine_depth + border_size],
|
||||
[half_machine_width - border_size, -half_machine_depth + border_size]
|
||||
], numpy.float32)))
|
||||
|
||||
return result
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue