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) &&
65 return !(*
this == rhs);
93 QObject* parent =
nullptr)
noexcept;
101 const QHash<OpenGlObject::Type, float>&
getAlpha() const noexcept {
109 void addObject(std::shared_ptr<OpenGlObject> obj)
noexcept;
110 void removeObject(std::shared_ptr<OpenGlObject> obj)
noexcept;
111 void setObjects(
const QVector<std::shared_ptr<OpenGlObject>>& objs)
noexcept;
112 void setAlpha(
const QHash<OpenGlObject::Type, float>& alpha)
noexcept;
113 slint::Image
render(
float width,
float height)
noexcept;
115 slint::private_api::PointerEvent e)
noexcept;
117 slint::private_api::PointerScrollEvent e)
noexcept;
131 void zoom(const QPointF& center, qreal factor) noexcept;
135 QPointF
toModelPos(const QPointF& pos) const noexcept;
141 std::unique_ptr<QOpenGLFramebufferObject>
mFbo;
Represents one 3D object in an OpenGL 3D model.
Definition openglobject.h:43
The SlintOpenGlView class.
Definition slintopenglview.h:86
QVector< std::shared_ptr< OpenGlObject > > mObjects
Definition slintopenglview.h:160
static constexpr qreal sCameraPosZ
Definition slintopenglview.h:163
slint::Image render(float width, float height) noexcept
Definition slintopenglview.cpp:135
void zoomAll() noexcept
Definition slintopenglview.cpp:278
std::unique_ptr< QOpenGLShaderProgram > mProgram
Definition slintopenglview.h:140
bool applyOpenGlProjection(const OpenGlProjection &projection) noexcept
Definition slintopenglview.cpp:364
void setObjects(const QVector< std::shared_ptr< OpenGlObject > > &objs) noexcept
Definition slintopenglview.cpp:121
void addObject(std::shared_ptr< OpenGlObject > obj) noexcept
Definition slintopenglview.cpp:111
void initializeGl() noexcept
Definition slintopenglview.cpp:297
void removeObject(std::shared_ptr< OpenGlObject > obj) noexcept
Definition slintopenglview.cpp:116
virtual ~SlintOpenGlView() noexcept
Definition slintopenglview.cpp:82
QSizeF mViewSize
Definition slintopenglview.h:143
void smoothTo(const OpenGlProjection &projection) noexcept
Definition slintopenglview.cpp:354
QHash< OpenGlObject::Type, float > mAlpha
Definition slintopenglview.h:148
void zoomOut() noexcept
Definition slintopenglview.cpp:273
SlintOpenGlView(const SlintOpenGlView &other)=delete
OpenGlProjection mProjection
Definition slintopenglview.h:147
QPointF mMousePressPosition
Definition slintopenglview.h:149
QMatrix4x4 mMousePressTransform
Definition slintopenglview.h:150
void zoomIn() noexcept
Definition slintopenglview.cpp:268
const OpenGlProjection & getProjection() const noexcept
Definition slintopenglview.h:100
QScopedPointer< QVariantAnimation > mAnimation
Definition slintopenglview.h:157
bool isPanning() const noexcept
Definition slintopenglview.cpp:89
OpenGlProjection mAnimationDataDelta
Definition slintopenglview.h:156
void setBackgroundColor(QColor color) noexcept
Definition slintopenglview.cpp:99
QStringList mErrors
Definition slintopenglview.h:142
QSet< slint::private_api::PointerEventButton > mPressedMouseButtons
Definition slintopenglview.h:152
OpenGlProjection mAnimationDataStart
Definition slintopenglview.h:155
const QStringList & getOpenGlErrors() const noexcept
Definition slintopenglview.h:99
QPointF mMousePressCenter
Definition slintopenglview.h:151
std::unique_ptr< QOpenGLFramebufferObject > mFbo
Definition slintopenglview.h:141
const QHash< OpenGlObject::Type, float > & getAlpha() const noexcept
Definition slintopenglview.h:101
void setAlpha(const QHash< OpenGlObject::Type, float > &alpha) noexcept
Definition slintopenglview.cpp:127
bool scrollEvent(const QPointF &pos, slint::private_api::PointerScrollEvent e) noexcept
Definition slintopenglview.cpp:262
QColor mBackgroundColor
Definition slintopenglview.h:144
bool pointerEvent(const QPointF &pos, slint::private_api::PointerEvent e) noexcept
Definition slintopenglview.cpp:209
std::unique_ptr< QOpenGLContext > mContext
Definition slintopenglview.h:139
std::unique_ptr< QOffscreenSurface > mSurface
Definition slintopenglview.h:138
void zoom(const QPointF ¢er, qreal factor) noexcept
Definition slintopenglview.cpp:343
QPointF toModelPos(const QPointF &pos) const noexcept
Definition slintopenglview.cpp:381
QPointF toNormalizedPos(const QPointF &pos) const noexcept
Definition slintopenglview.cpp:374
Definition occmodel.cpp:77
Definition slintopenglview.h:43
OpenGlProjection & operator=(const OpenGlProjection &rhs) noexcept
Definition slintopenglview.h:71
OpenGlProjection(qreal fov, const QPointF ¢er, const QMatrix4x4 &transform) noexcept
Definition slintopenglview.h:51
bool operator==(const OpenGlProjection &rhs) const noexcept
Definition slintopenglview.h:60
OpenGlProjection operator-(const OpenGlProjection &rhs) const noexcept
Definition slintopenglview.h:67
OpenGlProjection interpolated(const OpenGlProjection &delta, qreal factor) const noexcept
Definition slintopenglview.h:54
bool operator!=(const OpenGlProjection &rhs) const noexcept
Definition slintopenglview.h:64
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