Source code for RWESharp.Renderable.RenderLine
from RWESharp.Renderable.Renderable import Renderable
from PySide6.QtCore import Qt, QPointF, QLine, QLineF
from PySide6.QtWidgets import QGraphicsLineItem
from PySide6.QtGui import QPen
[docs]
class RenderLine(Renderable):
[docs]
def __init__(self, module, depth, line: QLine | QLineF, pen=QPen(Qt.GlobalColor.red), add_renderable: bool = True):
super().__init__(module, depth, False)
self.line = line
self.drawline = QGraphicsLineItem(line)
self.pen = QPen(pen)
self.drawline.setZValue(self.depth)
self.drawline.setPen(self.pen)
if add_renderable:
self.module.add_renderable(self)
[docs]
def init_graphics(self, viewport):
super().init_graphics(viewport)
self.viewport.workscene.addItem(self.drawline)
self.setLine(self.line)
# self.drawline.setBrush(self.brush)
[docs]
def remove_graphics(self, viewport):
super().remove_graphics(viewport)
viewport.workscene.removeItem(self.drawline)
[docs]
def move_event(self):
super().move_event()
self.drawline.setPos(self.actual_offset)
[docs]
def zoom_event(self):
self.drawline.setScale(self.zoom * self.scale)
[docs]
def setLine(self, line: QLineF | QLine):
self.drawline.setLine(line)
[docs]
def setPos(self, pos: QPointF):
super().setPos(pos)
self.drawline.setPos(self.actual_offset)
[docs]
def setOpacity(self, opacity):
super().setOpacity(opacity)
self.drawline.setOpacity(self.opacity)