from maya import OpenMaya class Vector2D(OpenMaya.MVector): def __init__(self, *args): if len(args) == 1: OpenMaya.MVector.__init__(self, args[0]) elif len(args) == 2: OpenMaya.MVector.__init__(self, args[0], args[1], 0) def __str__(self): return "{}, {}".format(self.x, self.y) def __repr__(self): return "< Vector2D object | point: {} >".format(str(self)) # ------------------------------------------------------------------------ def distanceBetween(self, other): """ :return: Distance between two points :rtype: float """ return (self - other).length() def signedAngle(self, other): """ :return: Signed angle between points :rtype: float """ angle = self.angle(other) cross = self ^ other if cross.z < 0: return -angle return angle