CURA-4672 fix auto arrange for small models, they are now rounded up to 1 pixel rasterized

This commit is contained in:
Jack Ha 2018-01-04 14:23:22 +01:00
parent 7b8f951682
commit abdc33a0b9
2 changed files with 13 additions and 0 deletions

View file

@ -29,8 +29,14 @@ class ShapeArray:
offset_x = int(numpy.amin(flip_vertices[:, 1])) offset_x = int(numpy.amin(flip_vertices[:, 1]))
flip_vertices[:, 0] = numpy.add(flip_vertices[:, 0], -offset_y) flip_vertices[:, 0] = numpy.add(flip_vertices[:, 0], -offset_y)
flip_vertices[:, 1] = numpy.add(flip_vertices[:, 1], -offset_x) flip_vertices[:, 1] = numpy.add(flip_vertices[:, 1], -offset_x)
flip_vertices = numpy.ceil(flip_vertices)
shape = [int(numpy.amax(flip_vertices[:, 0])), int(numpy.amax(flip_vertices[:, 1]))] shape = [int(numpy.amax(flip_vertices[:, 0])), int(numpy.amax(flip_vertices[:, 1]))]
if shape == [0, 0]:
shape = [1, 1]
arr = cls.arrayFromPolygon(shape, flip_vertices) arr = cls.arrayFromPolygon(shape, flip_vertices)
if not numpy.any(arr):
# set at least 1 pixel
arr[0][0] = 1
return cls(arr, offset_x, offset_y) return cls(arr, offset_x, offset_y)
## Instantiate an offset and hull ShapeArray from a scene node. ## Instantiate an offset and hull ShapeArray from a scene node.

View file

@ -118,6 +118,13 @@ def test_arrayFromPolygon2():
assert numpy.any(array) assert numpy.any(array)
## Polygon -> array
def test_fromPolygon():
vertices = numpy.array([[0, 0.5], [0, 0], [0.5, 0]])
array = ShapeArray.fromPolygon(vertices, scale=0.5)
assert numpy.any(array.arr)
## Line definition -> array with true/false ## Line definition -> array with true/false
def test_check(): def test_check():
base_array = numpy.zeros([5, 5], dtype=float) base_array = numpy.zeros([5, 5], dtype=float)