1 from __future__ import absolute_import
2 __copyright__ = "Copyright (C) 2013 David Braam - Released under terms of the AGPLv3 License"
7 def __init__(self, x=0.0, y=0.0, z=0.0):
13 return Vector3(self.x, self.y, self.z)
16 return Vector3(self.x, self.y, self.z)
19 return 'V[%s, %s, %s]' % ( self.x, self.y, self.z )
22 return Vector3( self.x + v.x, self.y + v.y, self.z + v.z )
25 return Vector3( self.x - v.x, self.y - v.y, self.z - v.z )
28 return Vector3( self.x * v, self.y * v, self.z * v )
31 return Vector3( self.x / v, self.y / v, self.z / v )
35 return Vector3( - self.x, - self.y, - self.z )
37 def __iadd__(self, v):
43 def __isub__(self, v):
49 def __imul__(self, v):
55 def __idiv__(self, v):
61 def almostEqual(self, v):
62 return (abs(self.x - v.x) + abs(self.y - v.y) + abs(self.z - v.z)) < 0.00001
65 return Vector3(self.y * v.z - self.z * v.y, -self.x * v.z + self.z * v.x, self.x * v.y - self.y * v.x)
68 return math.sqrt( self.x * self.x + self.y * self.y + self.z * self.z )
78 return Vector3(min(self.x, v.x), min(self.y, v.y), min(self.z, v.z))
81 return Vector3(max(self.x, v.x), max(self.y, v.y), max(self.z, v.z))