Merge pull request #79 from curtacircuitos/fix-slot-position
Fix slot position
This commit is contained in:
commit
4bd2f6c7da
2 changed files with 20 additions and 3 deletions
|
|
@ -1669,9 +1669,12 @@ class Slot(Primitive):
|
|||
@property
|
||||
def bounding_box(self):
|
||||
if self._bounding_box is None:
|
||||
ll = tuple([c - self.diameter / 2. for c in self.position])
|
||||
ur = tuple([c + self.diameter / 2. for c in self.position])
|
||||
self._bounding_box = ((ll[0], ur[0]), (ll[1], ur[1]))
|
||||
radius = self.diameter / 2.
|
||||
min_x = min(self.start[0], self.end[0]) - radius
|
||||
max_x = max(self.start[0], self.end[0]) + radius
|
||||
min_y = min(self.start[1], self.end[1]) - radius
|
||||
max_y = max(self.start[1], self.end[1]) + radius
|
||||
self._bounding_box = ((min_x, max_x), (min_y, max_y))
|
||||
return self._bounding_box
|
||||
|
||||
def offset(self, x_offset=0, y_offset=0):
|
||||
|
|
|
|||
|
|
@ -1343,3 +1343,17 @@ def test_drill_equality():
|
|||
assert_equal(d, d1)
|
||||
d1 = Drill((2.54, 25.4), 254.2)
|
||||
assert_not_equal(d, d1)
|
||||
|
||||
|
||||
def test_slot_bounds():
|
||||
""" Test Slot primitive bounding box calculation
|
||||
"""
|
||||
cases = [((0, 0), (1, 1), ((-1, 2), (-1, 2))),
|
||||
((-1, -1), (1, 1), ((-2, 2), (-2, 2))),
|
||||
((1, 1), (-1, -1), ((-2, 2), (-2, 2))),
|
||||
((-1, 1), (1, -1), ((-2, 2), (-2, 2))), ]
|
||||
|
||||
for start, end, expected in cases:
|
||||
s = Slot(start, end, 2.0)
|
||||
assert_equal(s.bounding_box, expected)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue