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)