from graphics.graphics_line_2d import *
# from content_widgets.functional_streamline_content_widget import QFunctionalStreamlinesContentWidget
# from content_widgets.mode_content_widget import QModeContentWidget
# from content_widgets.node_content_widget import QNodeContentWidget
# from content_widgets.streamline_content_widget import QStreamlinesContentWidget
# from content_widgets.substructure_content_widget import QSubstructureContentWidget
# from content_widgets.utility_content_widget import QUtilityContentWidget
# from objects.node_socket import *
# from config import *
# import json
# from collections import OrderedDict
# from serialize import Serializable
DEBUG = False
# THIS IS THE OBJECT THAT HOLDS THE PAINTED LINE AND CAN BE ADDED TO THE SCENE
[docs]class Line:
def __init__(self, main_win=None, line_type='line', pos=(0, 0),
section='top', IC=None, OC=None, BP=None, color="#ffffff"):
super().__init__()
self.main_win = main_win
self.scene = main_win.scene
self.grLine = None
self.line_type = line_type
self.section = section
self.instantiateNodeType(IC, OC, BP, color)
# THIS IS WHERE THE LINE IS ADDED, FIRST TO THE SCENE IN LINES_LIST AND THEN TO THE GRAPHICS SCENE
self.scene.addLine(self)
self.setPos(*pos)
self.scene.grScene.addItem(self.grLine)
@property
def pos(self):
return self.grLine.pos() # returns QPointF
[docs] def setPos(self, x, y):
self.grLine.setPos(x, y)
[docs] def remove(self):
self.scene.grScene.removeItem(self.grLine)
self.scene.removeLine(self)
[docs] def instantiateNodeType(self, IC, OC, BP, color):
self.grLine = QGraphicsLineDirect(self, color, section=self.section, IC=IC, OC=OC, BP=BP)