10 #include <QOpenGLFunctions_3_2_Core>
17 #include <QOpenGLWidget>
34 protected QOpenGLFunctions_3_2_Core {
110 std::unordered_map<image_t, Image>
images;
122 void mousePressEvent(QMouseEvent*
event)
override;
123 void mouseReleaseEvent(QMouseEvent*
event)
override;
124 void mouseMoveEvent(QMouseEvent*
event)
override;
125 void wheelEvent(QWheelEvent*
event)
override;
127 void SetupPainters();
131 void UploadCoordinateGridData();
132 void UploadPointData(
const bool selection_mode =
false);
133 void UploadPointConnectionData();
134 void UploadImageData(
const bool selection_mode =
false);
135 void UploadImageConnectionData();
136 void UploadMovieGrabberData();
138 void ComposeProjectionMatrix();
140 float ZoomScale()
const;
141 float AspectRatio()
const;
142 float OrthographicWindowExtent()
const;
144 Eigen::Vector3f PositionToArcballVector(
const float x,
const float y)
const;
148 QMatrix4x4 model_view_matrix_;
149 QMatrix4x4 projection_matrix_;
169 std::unique_ptr<PointColormapBase> point_colormap_;
170 std::unique_ptr<ImageColormapBase> image_colormap_;
172 bool mouse_is_pressed_;
173 QTimer mouse_press_timer_;
174 QPoint prev_mouse_pos_;
176 float focus_distance_;
178 std::vector<std::pair<size_t, char>> selection_buffer_;
181 size_t selected_movie_grabber_view_;
183 bool coordinate_grid_enabled_;
193 float background_color_[3];