20#ifndef LIBREPCB_EDITOR_BOARD3DTAB_H
21#define LIBREPCB_EDITOR_BOARD3DTAB_H
26#include "../../3d/openglobject.h"
43class OpenGlSceneBuilder;
46struct OpenGlProjection;
66 QObject* parent =
nullptr) noexcept;
72 ui::TabData
getUiData() const noexcept override;
77 void trigger(ui::TabAction a) noexcept override;
79 int scene) noexcept override;
81 const QPointF& pos, slint::private_api::PointerEvent e) noexcept override;
84 slint::private_api::PointerScrollEvent e) noexcept override;
The Board class represents a PCB of a project and is always part of a circuit.
Definition board.h:73
The Project class represents a whole (opened) project with all its content.
Definition project.h:71
The Signal class is used to emit signals on non-QObject derived classes.
Definition signalslot.h:65
The Board3dTab class.
Definition board3dtab.h:55
slint::Image renderScene(float width, float height, int scene) noexcept override
Definition board3dtab.cpp:236
void sceneRebuildTimerTimeout() noexcept
Definition board3dtab.cpp:263
std::shared_ptr< SlintOpenGlView > mView
Definition board3dtab.h:107
qint64 mTimestampOfLastSceneRebuild
Definition board3dtab.h:103
ui::Board3dTabData getDerivedUiData() const noexcept
Definition board3dtab.cpp:127
std::unique_ptr< OpenGlProjection > mProjection
Definition board3dtab.h:101
int mFrameIndex
Definition board3dtab.h:105
QHash< OpenGlObject::Type, float > mAlpha
Definition board3dtab.h:102
std::shared_ptr< OpenGlSceneBuilder > mSceneBuilder
Definition board3dtab.h:108
bool processSceneScrolled(const QPointF &pos, slint::private_api::PointerScrollEvent e) noexcept override
Definition board3dtab.cpp:250
Signal< Board3dTab > onDerivedUiDataChanged
Definition board3dtab.h:60
ProjectEditor & mProjectEditor
Definition board3dtab.h:95
void requestRepaint() noexcept
Definition board3dtab.cpp:288
bool processScenePointerEvent(const QPointF &pos, slint::private_api::PointerEvent e) noexcept override
Definition board3dtab.cpp:245
Board & mBoard
Definition board3dtab.h:98
Board3dTab(const Board3dTab &other)=delete
Project & mProject
Definition board3dtab.h:96
QStringList mSceneBuilderErrors
Definition board3dtab.h:104
int getProjectObjectIndex() const noexcept
Definition board3dtab.cpp:102
BoardEditor & mBoardEditor
Definition board3dtab.h:97
void scheduleSceneRebuild() noexcept
Definition board3dtab.cpp:259
void trigger(ui::TabAction a) noexcept override
Definition board3dtab.cpp:207
void setDerivedUiData(const ui::Board3dTabData &data) noexcept
Definition board3dtab.cpp:150
void deactivate() noexcept override
Definition board3dtab.cpp:196
ui::TabData getUiData() const noexcept override
Definition board3dtab.cpp:106
int getProjectIndex() const noexcept
Definition board3dtab.cpp:98
std::unique_ptr< QTimer > mSceneRebuildTimer
Definition board3dtab.h:109
void activate() noexcept override
Definition board3dtab.cpp:165
The BoardEditor class.
Definition boardeditor.h:58
The GuiApplication class.
Definition guiapplication.h:61
Represents one 3D object in an OpenGL 3D model.
Definition openglobject.h:43
Asynchronously generates a 3D board scene for OpenGL rendering.
Definition openglscenebuilder.h:50
The ProjectEditor class.
Definition projecteditor.h:63
The SlintOpenGlView class.
Definition slintopenglview.h:83
The WindowTab class.
Definition windowtab.h:51
Definition occmodel.cpp:77
Definition slintopenglview.h:43