chiark / gitweb /
Remove debug message
[cura.git] / Cura / gui / util3d.py
1
2 import math
3
4 class Vector3():
5         def __init__(self, x=0.0, y=0.0, z=0.0):
6                 self.x = x
7                 self.y = y
8                 self.z = z
9
10         def __copy__(self):
11                 return Vector3(self.x, self.y, self.z)
12
13         def copy(self):
14                 return Vector3(self.x, self.y, self.z)
15
16         def __repr__(self):
17                 return '%s, %s, %s' % ( self.x, self.y, self.z )
18
19         def __add__(self, v):
20                 return Vector3( self.x + v.x, self.y + v.y, self.z + v.z )
21
22         def __sub__(self, v):
23                 return Vector3( self.x - v.x, self.y - v.y, self.z - v.z )
24
25         def __mul__(self, v):
26                 return Vector3( self.x * v, self.y * v, self.z * v )
27
28         def __div__(self, v):
29                 return Vector3( self.x / v, self.y / v, self.z / v )
30
31         def __neg__(self):
32                 return Vector3( - self.x, - self.y, - self.z )
33
34         def __iadd__(self, v):
35                 self.x += v.x
36                 self.y += v.x
37                 self.z += v.x
38                 return self
39
40         def __isub__(self, v):
41                 self.x += v.x
42                 self.y += v.x
43                 self.z += v.x
44                 return self
45
46         def __imul__(self, v):
47                 self.x *= v
48                 self.y *= v
49                 self.z *= v
50                 return self
51
52         def __idiv__(self, v):
53                 self.x /= v
54                 self.y /= v
55                 self.z /= v
56                 return self
57
58         def cross(self, v):
59                 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)
60
61         def vsize(self):
62                 return math.sqrt( self.x * self.x + self.y * self.y + self.z * self.z )
63
64         def normalize(self):
65                 f = self.vsize()
66                 if f != 0.0:
67                         self.x /= f
68                         self.y /= f
69                         self.z /= f
70