Author: ArcRiley Date: 2008-02-17 00:39:50 -0500 (Sun, 17 Feb 2008) New Revision: 916
Modified: trunk/pysoy/src/colors/Color.pxi Log: added color multiplication and division I can't figure out why self needed to be cast as <Color> - likely a Pyrex bug. Modified: trunk/pysoy/src/colors/Color.pxi =================================================================== --- trunk/pysoy/src/colors/Color.pxi 2008-02-17 05:06:24 UTC (rev 915) +++ trunk/pysoy/src/colors/Color.pxi 2008-02-17 05:39:50 UTC (rev 916) @@ -28,9 +28,36 @@ elif type(value) == tuple or type(value) == list : self.floats = value else : - raise ValueError('color value must be string, tuple, or list') + raise TypeError('color value must be string, tuple, or list') + def __div__(self, value) : + if type(value) == int or type(value) == float : + return Color(( (<Color> self)._r / value, (<Color> self)._g / value, + (<Color> self)._b / value, (<Color> self)._a / value )) + elif isinstance(value, Color) : + return Color(( (<Color> self)._r / (<Color> value)._r, + (<Color> self)._g / (<Color> value)._g, + (<Color> self)._b / (<Color> value)._b, + (<Color> self)._a / (<Color> value)._a )) + else : + raise TypeError('can only divide Color by a Color, int, or float') + def __mul__(self, value) : + if type(value) == int or type(value) == float : + return Color(( (<Color> self)._r * value, (<Color> self)._g * value, + (<Color> self)._b * value, (<Color> self)._a * value )) + elif isinstance(value, Color) : + return Color(( (<Color> self)._r * (<Color> value)._r, + (<Color> self)._g * (<Color> value)._g, + (<Color> self)._b * (<Color> value)._b, + (<Color> self)._a * (<Color> value)._a )) + else : + raise TypeError('can only multiply Color by a Color, int, or float') + + def __repr__(self) : + return '<Color %s>' % (self.hex) + + cdef void _getRGBA(self, float* ret) : ret[0] = self._r ret[1] = self._g @@ -134,5 +161,3 @@ self._b = value - def __repr__(self) : - return '<Color %s>' % (self.hex) _______________________________________________ PySoy-SVN mailing list PySoy-SVN@pysoy.org http://www.pysoy.org/mailman/listinfo/pysoy-svn