Author: DavidCzech
Date: 2008-03-18 16:20:35 -0400 (Tue, 18 Mar 2008)
New Revision: 1164

Modified:
   trunk/pysoy/src/_datatypes/BodyPosition.pxi
Log:
Better Vector Support

Modified: trunk/pysoy/src/_datatypes/BodyPosition.pxi
===================================================================
--- trunk/pysoy/src/_datatypes/BodyPosition.pxi 2008-03-18 20:18:21 UTC (rev 
1163)
+++ trunk/pysoy/src/_datatypes/BodyPosition.pxi 2008-03-18 20:20:35 UTC (rev 
1164)
@@ -49,13 +49,11 @@
                                           _position[1] + value,
                                           _position[2] + value))
     if type(value) == tuple or type(value) == list and len(value) == 3 \
-       or isinstance(value, soy._datatypes.BodyPosition) :
+       or isinstance(value, soy._datatypes.BodyPosition)
+       or isinstance(value, soy.atoms.Vector) :
       return soy._datatypes.BodyPosition((_position[0] + value[0],
                                           _position[1] + value[1],
                                           _position[2] + value[2]))
-    return soy._datatypes.BodyPosition((_position[0] + value[0],
-                                          _position[1] + value[1],
-                                          _position[2] + value[2]))
     return NotImplemented
 
   def __radd__(BodyPosition self, value) :
@@ -73,14 +71,11 @@
                                           _position[1] - value,
                                           _position[2] - value))
     if type(value) == tuple or type(value) == list and len(value) == 3 \
-       or isinstance(value, soy._datatypes.BodyPosition) :
+       or isinstance(value, soy._datatypes.BodyPosition)
+       or isinstance(value, soy.atoms.Vector) :
       return soy._datatypes.BodyPosition((_position[0] - value[0],
                                           _position[1] - value[1],
                                           _position[2] - value[2]))
-    if isinstance(value, soy.atoms.Vector) :
-      return soy._datatypes.BodyPosition((_position[0] - value[0],
-                                          _position[1] - value[1],
-                                          _position[2] - value[2]))
     return NotImplemented
 
   def __rsub__(BodyPosition self, value) :
@@ -95,7 +90,8 @@
                                           value - _position[1],
                                           value - _position[2]))
     if type(value) == tuple or type(value) == list and len(value) == 3 \
-       or isinstance(value, soy._datatypes.BodyPosition) :
+       or isinstance(value, soy._datatypes.BodyPosition)
+       or isinstance(value, soy.atoms.Vector) :
       return soy._datatypes.BodyPosition((value[0] - _position[0],
                                           value[1] - _position[1],
                                           value[2] - _position[2]))
@@ -113,14 +109,11 @@
                                           _position[1] / value,
                                           _position[2] / value))
     if type(value) == tuple or type(value) == list and len(value) == 3 \
-       or isinstance(value, soy._datatypes.BodyPosition) :
+       or isinstance(value, soy._datatypes.BodyPosition)
+       or isinstance(value, soy.atoms.Vector) :
       return soy._datatypes.BodyPosition((_position[0] / value[0],
                                           _position[1] / value[1],
                                           _position[2] / value[2]))
-    if isinstance(value, soy.atoms.Vector) :
-      return soy._datatypes.BodyPosition((_position[0] / value[0],
-                                          _position[1] / value[1],
-                                          _position[2] / value[2]))
     return NotImplemented
 
   def __rdiv__(BodyPosition self, value) :
@@ -135,7 +128,8 @@
                                           value / _position[1],
                                           value / _position[2]))
     if type(value) == tuple or type(value) == list and len(value) == 3 \
-       or isinstance(value, soy._datatypes.BodyPosition) :
+       or isinstance(value, soy._datatypes.BodyPosition)
+       or isinstance(value, soy.atoms.Vector) :
       return soy._datatypes.BodyPosition((value[0] / _position[0],
                                           value[1] / _position[1],
                                           value[2] / _position[2]))
@@ -153,14 +147,11 @@
                                           _position[1] * value,
                                           _position[2] * value))
     if type(value) == tuple or type(value) == list and len(value) == 3 \
-       or isinstance(value, soy._datatypes.BodyPosition) :
+       or isinstance(value, soy._datatypes.BodyPosition)
+       or isinstance(value, soy.atoms.Vector) :
       return soy._datatypes.BodyPosition((_position[0] * value[0],
                                           _position[1] * value[1],
                                           _position[2] * value[2]))
-    if isinstance(value, soy.atoms.Vector):
-      return soy._datatypes.BodyPosition((_position[0] * value[0],
-                                          _position[1] * value[1],
-                                          _position[2] * value[2]))
     return NotImplemented
   
   def __rmul__(BodyPosition self, value) :
@@ -178,7 +169,8 @@
                                           _position[1] % value,
                                           _position[2] % value))
     if type(value) == tuple or type(value) == list and len(value) == 3 \
-       or isinstance(value, soy._datatypes.BodyPosition) :
+       or isinstance(value, soy._datatypes.BodyPosition)
+       or isinstance(value, soy.atoms.Vector) :
       return soy._datatypes.BodyPosition((_position[0] % value[0],
                                           _position[1] % value[1],
                                           _position[2] % value[2]))
@@ -196,7 +188,8 @@
                                           value % _position[1],
                                           value % _position[2]))
     if type(value) == tuple or type(value) == list and len(value) == 3 \
-       or isinstance(value, soy._datatypes.BodyPosition) :
+       or isinstance(value, soy._datatypes.BodyPosition)
+       or isinstance(value, soy.atoms.Vector) :
       return soy._datatypes.BodyPosition((value[0] % _position[0],
                                           value[1] % _position[1],
                                           value[2] % _position[2]))

_______________________________________________
PySoy-SVN mailing list
PySoy-SVN@pysoy.org
http://www.pysoy.org/mailman/listinfo/pysoy-svn

Reply via email to