Source code for RWESharp.Renderable.RenderRect

from RWESharp.Renderable.Renderable import Renderable
from PySide6.QtCore import QRectF, Qt, QPointF, QRect
from PySide6.QtWidgets import QGraphicsRectItem
from PySide6.QtGui import QPen, QBrush


[docs] class RenderRect(Renderable):
[docs] def __init__(self, module, depth, rect: QRectF | QRect, pen=QPen(Qt.GlobalColor.red), brush=QBrush(Qt.GlobalColor.transparent), add_renderable: bool = True): super().__init__(module, depth, False) self.rect = QRectF() self.drawrect = QGraphicsRectItem(self.rect) self.setRect(rect) self.pen = QPen(pen) self.brush = QBrush(brush) self.drawrect.setPen(self.pen) self.drawrect.setBrush(self.brush) self.drawrect.setZValue(self.depth) if add_renderable: self.module.add_renderable(self)
[docs] def init_graphics(self, viewport): super().init_graphics(viewport) viewport.workscene.addItem(self.drawrect) self.setRect(self.rect)
[docs] def remove_graphics(self, viewport): super().remove_graphics(viewport) viewport.workscene.removeItem(self.drawrect)
[docs] def move_event(self): super().move_event() self.drawrect.setPos(self.actual_offset)
[docs] def zoom_event(self): self.drawrect.setScale(self.zoom * self.scale)
[docs] def setRect(self, rect: QRect | QRectF): if isinstance(self.rect, QRect): self.rect = rect.toRectF() else: self.rect = rect self.drawrect.setRect(rect)
[docs] def setPos(self, pos: QPointF): super().setPos(pos) self.drawrect.setPos(self.actual_offset)
[docs] def setOpacity(self, opacity): super().setOpacity(opacity) self.drawrect.setOpacity(self.opacity)