implement Vector operators __add__, __sub__, __mul__, __truediv__
This commit is contained in:
@ -80,13 +80,25 @@ class Vector(object):
|
||||
def sub(self, v):
|
||||
return Vector(self.wrapped.Subtracted(v.wrapped))
|
||||
|
||||
def __sub__(self, v):
|
||||
return self.sub(v)
|
||||
|
||||
def add(self, v):
|
||||
return Vector(self.wrapped.Added(v.wrapped))
|
||||
|
||||
def __add__(self, v):
|
||||
return self.add(v)
|
||||
|
||||
def multiply(self, scale):
|
||||
"""Return a copy multiplied by the provided scalar"""
|
||||
return Vector(self.wrapped.Multiplied(scale))
|
||||
|
||||
def __mul__(self, scale):
|
||||
return self.multiply(scale)
|
||||
|
||||
def __truediv__(self, denom):
|
||||
return self.multiply(1.0 / denom)
|
||||
|
||||
def normalized(self):
|
||||
"""Return a normalized version of this vector"""
|
||||
return Vector(self.wrapped.Normalized())
|
||||
|
||||
@ -108,6 +108,19 @@ class TestCadObjects(BaseTest):
|
||||
result = Vector(1, 2, 0) + Vector(0, 0, 3)
|
||||
self.assertTupleAlmostEquals((1.0, 2.0, 3.0), result.toTuple(), 3)
|
||||
|
||||
def testVectorOperators(self):
|
||||
result = Vector(1, 1, 1) + Vector(2, 2, 2)
|
||||
self.assertEqual(Vector(3, 3, 3), result)
|
||||
|
||||
result = Vector(1, 2, 3) - Vector(3, 2, 1)
|
||||
self.assertEqual(Vector(-2, 0, 2), result)
|
||||
|
||||
result = Vector(1, 2, 3) * 2
|
||||
self.assertEqual(Vector(2, 4, 6), result)
|
||||
|
||||
result = Vector(2, 4, 6) / 2
|
||||
self.assertEqual(Vector(1, 2, 3), result)
|
||||
|
||||
def testVectorEquals(self):
|
||||
a = Vector(1, 2, 3)
|
||||
b = Vector(1, 2, 3)
|
||||
|
||||
Reference in New Issue
Block a user