20#ifndef LIBREPCB_EDITOR_SLINTOPENGLVIEW_H
21#define LIBREPCB_EDITOR_SLINTOPENGLVIEW_H
55 qreal factor)
const noexcept {
57 center + delta.center * factor,
61 return (
fov != rhs.fov) || (
center != rhs.center) ||
90 QObject* parent =
nullptr)
noexcept;
98 const QHash<OpenGlObject::Type, float>&
getAlpha() const noexcept {
104 void addObject(std::shared_ptr<OpenGlObject> obj)
noexcept;
105 void removeObject(std::shared_ptr<OpenGlObject> obj)
noexcept;
106 void setObjects(
const QVector<std::shared_ptr<OpenGlObject>>& objs)
noexcept;
107 void setAlpha(
const QHash<OpenGlObject::Type, float>& alpha)
noexcept;
108 slint::Image
render(
float width,
float height)
noexcept;
110 slint::private_api::PointerEvent e)
noexcept;
112 slint::private_api::PointerScrollEvent e)
noexcept;
126 void zoom(const QPointF& center, qreal factor) noexcept;
130 QPointF
toModelPos(const QPointF& pos) const noexcept;
136 std::unique_ptr<QOpenGLFramebufferObject>
mFbo;
Represents one 3D object in an OpenGL 3D model.
Definition openglobject.h:43
The SlintOpenGlView class.
Definition slintopenglview.h:83
QVector< std::shared_ptr< OpenGlObject > > mObjects
Definition slintopenglview.h:154
static constexpr qreal sCameraPosZ
Definition slintopenglview.h:157
slint::Image render(float width, float height) noexcept
Definition slintopenglview.cpp:121
void zoomAll() noexcept
Definition slintopenglview.cpp:260
std::unique_ptr< QOpenGLShaderProgram > mProgram
Definition slintopenglview.h:135
bool applyOpenGlProjection(const OpenGlProjection &projection) noexcept
Definition slintopenglview.cpp:339
void setObjects(const QVector< std::shared_ptr< OpenGlObject > > &objs) noexcept
Definition slintopenglview.cpp:107
void addObject(std::shared_ptr< OpenGlObject > obj) noexcept
Definition slintopenglview.cpp:97
void initializeGl() noexcept
Definition slintopenglview.cpp:268
void removeObject(std::shared_ptr< OpenGlObject > obj) noexcept
Definition slintopenglview.cpp:102
virtual ~SlintOpenGlView() noexcept
Definition slintopenglview.cpp:80
QSizeF mViewSize
Definition slintopenglview.h:138
void smoothTo(const OpenGlProjection &projection) noexcept
Definition slintopenglview.cpp:329
QHash< OpenGlObject::Type, float > mAlpha
Definition slintopenglview.h:142
void zoomOut() noexcept
Definition slintopenglview.cpp:255
SlintOpenGlView(const SlintOpenGlView &other)=delete
OpenGlProjection mProjection
Definition slintopenglview.h:141
static QColor getBackgroundColor() noexcept
Definition slintopenglview.h:101
QPointF mMousePressPosition
Definition slintopenglview.h:143
QMatrix4x4 mMousePressTransform
Definition slintopenglview.h:144
void zoomIn() noexcept
Definition slintopenglview.cpp:250
const OpenGlProjection & getProjection() const noexcept
Definition slintopenglview.h:97
QScopedPointer< QVariantAnimation > mAnimation
Definition slintopenglview.h:151
bool isPanning() const noexcept
Definition slintopenglview.cpp:87
OpenGlProjection mAnimationDataDelta
Definition slintopenglview.h:150
QStringList mErrors
Definition slintopenglview.h:137
QSet< slint::private_api::PointerEventButton > mPressedMouseButtons
Definition slintopenglview.h:146
OpenGlProjection mAnimationDataStart
Definition slintopenglview.h:149
const QStringList & getOpenGlErrors() const noexcept
Definition slintopenglview.h:96
QPointF mMousePressCenter
Definition slintopenglview.h:145
std::unique_ptr< QOpenGLFramebufferObject > mFbo
Definition slintopenglview.h:136
const QHash< OpenGlObject::Type, float > & getAlpha() const noexcept
Definition slintopenglview.h:98
void setAlpha(const QHash< OpenGlObject::Type, float > &alpha) noexcept
Definition slintopenglview.cpp:113
bool scrollEvent(const QPointF &pos, slint::private_api::PointerScrollEvent e) noexcept
Definition slintopenglview.cpp:244
bool pointerEvent(const QPointF &pos, slint::private_api::PointerEvent e) noexcept
Definition slintopenglview.cpp:191
std::unique_ptr< QOpenGLContext > mContext
Definition slintopenglview.h:134
std::unique_ptr< QOffscreenSurface > mSurface
Definition slintopenglview.h:133
void zoom(const QPointF ¢er, qreal factor) noexcept
Definition slintopenglview.cpp:318
QPointF toModelPos(const QPointF &pos) const noexcept
Definition slintopenglview.cpp:356
QPointF toNormalizedPos(const QPointF &pos) const noexcept
Definition slintopenglview.cpp:349
Definition occmodel.cpp:77
Definition slintopenglview.h:43
OpenGlProjection & operator=(const OpenGlProjection &rhs) noexcept
Definition slintopenglview.h:68
OpenGlProjection(qreal fov, const QPointF ¢er, const QMatrix4x4 &transform) noexcept
Definition slintopenglview.h:51
OpenGlProjection operator-(const OpenGlProjection &rhs) const noexcept
Definition slintopenglview.h:64
OpenGlProjection interpolated(const OpenGlProjection &delta, qreal factor) const noexcept
Definition slintopenglview.h:54
bool operator!=(const OpenGlProjection &rhs) const noexcept
Definition slintopenglview.h:60
OpenGlProjection(const OpenGlProjection &other) noexcept
Definition slintopenglview.h:49
qreal fov
Definition slintopenglview.h:44
OpenGlProjection() noexcept
Definition slintopenglview.h:48
QMatrix4x4 transform
Definition slintopenglview.h:46
QPointF center
Definition slintopenglview.h:45