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