"""
A number of usefull categories on Foundation classes
"""
__all__ = ()
import objc
from Foundation import NSAffineTransform
class NSAffineTransform (objc.Category(NSAffineTransform)):
def rotateByDegrees_atPoint_(self, angle, point):
"""
Rotate the coordinatespace ``angle`` degrees around
``point``.
"""
self.rotateByDegrees_(angle)
tf = NSAffineTransform.transform()
tf.rotateByDegrees_(-angle)
oldPt = tf.transformPoint_(point)
oldPt.x -= point.x
oldPt.y -= point.y
self.translateXBy_yBy_(oldPt.x, oldPt.y)
def rotateByRadians_atPoint_(self, angle, point):
"""
Rotate the coordinatespace ``angle`` radians around
``point``.
"""
self.rotateByRadians_(angle)
tf = NSAffineTransform.transform()
tf.rotateByRadians_(-angle)
oldPt = tf.transformPoint_(point)
oldPt.x -= point.x
oldPt.y -= point.y
self.translateXBy_yBy_(oldPt.x, oldPt.y)
|