@@ -21,13 +21,33 @@ def __repr__(self):
2121 return "Vector({}, {}, {})" .format (self .x , self .y , self .z )
2222
2323 def __add__ (self , v ):
24- return Vector (self .x + v .x , self .y + v .y , self .z + v .z )
24+ if isinstance (v , Vector ):
25+ return Vector (self .x + v .x , self .y + v .y , self .z + v .z )
26+
27+ if isinstance (v , (int , float )):
28+ return Vector (self .x + v , self .y + v , self .z + v )
2529
2630 def __sub__ (self , v ):
27- return Vector (self .x - v .x , self .y - v .y , self .z - v .z )
31+ if isinstance (v , Vector ):
32+ return Vector (self .x - v .x , self .y - v .y , self .z - v .z )
33+
34+ if isinstance (v , (int , float )):
35+ return Vector (self .x - v , self .y - v , self .z - v )
2836
2937 def __mul__ (self , v ):
30- return Vector (self .x * v .x , self .y * v .y , self .z * v .z )
38+ if isinstance (v , Vector ):
39+ return Vector (self .x * v .x , self .y * v .y , self .z * v .z )
40+
41+ if isinstance (v , (int , float )):
42+ return Vector (self .x * v , self .y * v , self .z * v )
43+
44+ def __rmul__ (self , v ):
45+ return self * v
46+ # if isinstance(v, Vector):
47+ # return Vector(self.x * v.x, self.y * v.y, self.z * v.z)
48+
49+ # if isinstance(v, (int, float)):
50+ # return Vector(self.x * v, self.y * v, self.z * v)
3151
3252class BoundingBox :
3353 def __init__ (self , min , max ):
0 commit comments