19 #include <QtWidgets/QOpenGLWidget> 31 class SceneViewer :
public QOpenGLWidget,
protected QOpenGLFunctions {
43 bool is_init(
void)
const {
return is_init_; }
44 bool IsFreeCamera(
void)
const {
return current_cameraPtr_ == &free_camera_; }
50 permanent_renderable_obj_list_.append(obj);
60 return current_cameraPtr_->
position();
63 return current_cameraPtr_->
attitude();
69 const std::string& shaderProgName,
70 const std::shared_ptr<QOpenGLShaderProgram>& newShaderProg);
73 const std::string& shaderProgName) {
74 if (managed_shader_prog_.find(shaderProgName) !=
75 managed_shader_prog_.end()) {
76 return managed_shader_prog_[shaderProgName];
78 return std::shared_ptr<QOpenGLShaderProgram>();
104 void resizeGL(
int w,
int h)
override;
116 void UpdateCameraWorld(
void);
117 void UpdateAllShaderProgMVP(
const QMatrix4x4& mvp);
120 bool right_key_is_moved_;
123 QTimer* refreshTimer_;
125 QPoint left_key_last_pos_;
126 float right_key_last_y_;
134 std::map<const std::string, std::shared_ptr<QOpenGLShaderProgram>>
135 managed_shader_prog_;
137 struct TempRenderableObjGroup;
139 std::map<const std::string, TempRenderableObjGroup*> tmp_renderable_obj_list_;
140 QList<RenderableObject*> permanent_renderable_obj_list_;
void CameraPosChanged(const QVector3D &pos)
CameraType
Definition: scene_viewer.h:35
Definition: scene_viewer.h:37
const QVector3D & CameraPos(void) const
Definition: scene_viewer.h:59
void UpdateCameraRoll(double rollInDegrees)
void mouseReleaseEvent(QMouseEvent *event) override
Definition: scene_viewer.h:31
bool IsFreeCamera(void) const
Definition: scene_viewer.h:44
void UpdateCameraPitch(double pitchInDegrees)
const QVector3D & position(void) const
Definition: abstract_camera.h:84
void wheelEvent(QWheelEvent *event) override
bool haveShaderProgram(void)
Definition: renderable_object.h:60
Definition: renderable_object.h:25
Definition: abstract_camera.h:21
SceneViewer(QWidget *parent=nullptr)
void UpdateCameraYaw(double yawInDegrees)
void UpdateCameraZ(double Z)
void UpdateCameraX(double x)
void resizeGL(int w, int h) override
float sensitivity(void) const
Definition: scene_viewer.h:66
bool is_init(void) const
Definition: scene_viewer.h:43
void set_sensitivity(float s)
Definition: scene_viewer.h:100
void mousePressEvent(QMouseEvent *mouseEvent) override
void setTempObjGroupEnabled(const std::string &tmpObjGroupName, bool b)
void mouseMoveEvent(QMouseEvent *mouseEvent) override
std::shared_ptr< QOpenGLShaderProgram > FindShaderProg(const std::string &shaderProgName)
Definition: scene_viewer.h:72
void leaveEvent(QEvent *event) override
Definition: scene_camera_dialog.h:27
void CameraAttitudeChanged(const QVector3D &attitude)
bool AddPermanentRenderObj(RenderableObject *obj)
Definition: scene_viewer.h:48
void ResetCameraPosAttitude(void)
const QVector3D & attitude(void) const
Definition: abstract_camera.h:101
const QVector3D & CamerAttitude(void) const
Definition: scene_viewer.h:62
Definition: scene_viewer.h:36
void UpdateCameraY(double Y)
void ChangeCameraType(int index)
void initializeGL() override
Definition: free_camera.h:21
Definition: target_camera.h:21
void enterEvent(QEvent *event) override
bool AddTempRenderableObj(const std::string &tmpObjGroupName, RenderableObject *renderObj)
void AddNewShaderProg(const std::string &shaderProgName, const std::shared_ptr< QOpenGLShaderProgram > &newShaderProg)