Fix Vector.__init__ for Qt5 + cleanup
This commit is contained in:
parent
78702eea8b
commit
0df7cbcd06
|
@ -14,22 +14,33 @@ class Vector(QtGui.QVector3D):
|
|||
def __init__(self, *args):
|
||||
if len(args) == 1:
|
||||
if isinstance(args[0], QtCore.QSizeF):
|
||||
QtGui.QVector3D.__init__(self, float(args[0].width()), float(args[0].height()), 0)
|
||||
return
|
||||
x = float(args[0].width())
|
||||
y = float(args[0].height())
|
||||
z = 0
|
||||
elif isinstance(args[0], QtCore.QPoint) or isinstance(args[0], QtCore.QPointF):
|
||||
QtGui.QVector3D.__init__(self, float(args[0].x()), float(args[0].y()), 0)
|
||||
x = float(args[0].x())
|
||||
y = float(args[0].y())
|
||||
z = 0
|
||||
elif isinstance(args[0], QtGui.QVector3D):
|
||||
x = args[0].x()
|
||||
y = args[0].y()
|
||||
z = args[0].z()
|
||||
elif hasattr(args[0], '__getitem__'):
|
||||
vals = list(args[0])
|
||||
if len(vals) == 2:
|
||||
vals.append(0)
|
||||
if len(vals) != 3:
|
||||
raise Exception('Cannot init Vector with sequence of length %d' % len(args[0]))
|
||||
QtGui.QVector3D.__init__(self, *vals)
|
||||
return
|
||||
x, y = vals
|
||||
z = 0
|
||||
elif len(vals) == 3:
|
||||
x, y, z = vals
|
||||
else:
|
||||
raise ValueError('Cannot init Vector with sequence of length %d' % len(args[0]))
|
||||
elif len(args) == 2:
|
||||
QtGui.QVector3D.__init__(self, args[0], args[1], 0)
|
||||
return
|
||||
QtGui.QVector3D.__init__(self, *args)
|
||||
x, y = args
|
||||
z = 0
|
||||
else:
|
||||
x, y, z = args # Could raise ValueError
|
||||
|
||||
QtGui.QVector3D.__init__(self, x, y, z)
|
||||
|
||||
def __len__(self):
|
||||
return 3
|
||||
|
|
Loading…
Reference in New Issue