def adjust(self): """ Draw a serial link """ AbstractEdge.adjust(self) # get src->dest angle vector_angle = math.atan2(self.dy, self.dx) # get mini-vector, and its angle rot_angle = - math.pi / 4.0 vectrot = QtCore.QPointF(math.cos(vector_angle + rot_angle), math.sin(vector_angle + rot_angle)) # get the rotated points position angle_srcPt = QtCore.QPointF(self.src.x() + self.dx / 2.0 + 15 * vectrot.x(), self.src.y() + self.dy / 2.0 + 15 * vectrot.y()) angle_dstPt = QtCore.QPointF(self.dst.x() - self.dx / 2.0 - 15 * vectrot.x(), self.dst.y() - self.dy / 2.0 - 15 * vectrot.y()) # draw the path self.path = QtGui.QPainterPath(self.src) self.path.lineTo(angle_srcPt) self.path.lineTo(angle_dstPt) self.path.lineTo(self.dst) self.setPath(self.path) # set interface status points positions scale_vect = QtCore.QPointF(angle_srcPt.x() - self.src.x(), angle_srcPt.y() - self.src.y()) scale_vect_diag = math.sqrt(scale_vect.x() ** 2 + scale_vect.y() ** 2) scale_coef = scale_vect_diag / 40.0 self.src = QtCore.QPointF(self.src.x() + scale_vect.x() / scale_coef, self.src.y() + scale_vect.y() / scale_coef) self.dst = QtCore.QPointF(self.dst.x() - scale_vect.x() / scale_coef, self.dst.y() - scale_vect.y() / scale_coef)
def __init__(self, sourceNode, sourceIf, destNode, destIf, Fake = False, Multi = 0): """ sourceNode: Node instance destNode: Node instance """ AbstractEdge.__init__(self, sourceNode, sourceIf, destNode, destIf, Fake, Multi) self.setPen(QtGui.QPen(QtCore.Qt.red, self.penWidth, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)) self.labelSouceIf = None self.labelDestIf = None
def adjust(self): """ Draw a line and compute offsets for status points """ AbstractEdge.adjust(self) # draw a line between nodes self.path = QtGui.QPainterPath(self.src) self.path.lineTo(self.dst) self.setPath(self.path) # offset on the line for status points if self.length == 0: self.edgeOffset = QtCore.QPointF(0, 0) else: self.edgeOffset = QtCore.QPointF((self.dx * 40) / self.length, (self.dy * 40) / self.length)
def __init__(self, sourceNode, sourceIf, destNode, destIf, Fake=False, Multi=0): """ sourceNode: MNode instance destNode: MNode instance """ AbstractEdge.__init__(self, sourceNode, sourceIf, destNode, destIf, Fake, Multi) self.setPen( QtGui.QPen(QtCore.Qt.black, self.penWidth, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)) self.labelSouceIf = None self.labelDestIf = None
def adjust(self): """ Draw a serial link """ AbstractEdge.adjust(self) # get src->dest angle vector_angle = math.atan2(self.dy, self.dx) # get mini-vector, and its angle rot_angle = -math.pi / 4.0 vectrot = QtCore.QPointF(math.cos(vector_angle + rot_angle), math.sin(vector_angle + rot_angle)) # get the rotated points position angle_srcPt = QtCore.QPointF( self.src.x() + self.dx / 2.0 + 15 * vectrot.x(), self.src.y() + self.dy / 2.0 + 15 * vectrot.y()) angle_dstPt = QtCore.QPointF( self.dst.x() - self.dx / 2.0 - 15 * vectrot.x(), self.dst.y() - self.dy / 2.0 - 15 * vectrot.y()) # draw the path self.path = QtGui.QPainterPath(self.src) self.path.lineTo(angle_srcPt) self.path.lineTo(angle_dstPt) self.path.lineTo(self.dst) self.setPath(self.path) # set interface status points positions scale_vect = QtCore.QPointF(angle_srcPt.x() - self.src.x(), angle_srcPt.y() - self.src.y()) scale_vect_diag = math.sqrt(scale_vect.x()**2 + scale_vect.y()**2) scale_coef = scale_vect_diag / 40.0 self.src = QtCore.QPointF(self.src.x() + scale_vect.x() / scale_coef, self.src.y() + scale_vect.y() / scale_coef) self.dst = QtCore.QPointF(self.dst.x() - scale_vect.x() / scale_coef, self.dst.y() - scale_vect.y() / scale_coef)