20#ifndef SDFORMAT_EDITOR_MODEL_VIEWER_HH_
21#define SDFORMAT_EDITOR_MODEL_VIEWER_HH_
23#include <interfaces/model_viewer_interface.h>
27#include "OgreApplicationContext.h"
29#include "OgreRTShaderSystem.h"
30#include "OgreWindowEventUtilities.h"
31#include "OgreAssimpLoader.h"
32#include "OgreCameraMan.h"
36#include <glm/gtc/quaternion.hpp>
60 private:
void Quit()
override;
92 private: std::mutex&
GetMutex()
override;
101 private: OgreBites::ApplicationContext
ctx;
136 public:
bool keyPressed(
const OgreBites::KeyboardEvent &evt)
override;
137 public:
bool mouseWheelRolled(
const OgreBites::MouseWheelEvent &evt)
override;
138 public:
bool mouseMoved(
const OgreBites::MouseMotionEvent& evt)
override;
139 public:
bool mousePressed(
const OgreBites::MouseButtonEvent& evt)
override;
140 public:
bool mouseReleased(
const OgreBites::MouseButtonEvent& evt)
override;
157 private:
unsigned long long unique_naming_counter = 0;
161 Ogre::ColourValue(3.3699f, 3.1256f, 0.633f),
162 Ogre::ColourValue(0.549f, 3.1569f, 0.1569f),
163 Ogre::ColourValue(4.1325f, 1.1339f, 0.234f),
164 Ogre::ColourValue(1.0f, 0.5f, 0.0f),
165 Ogre::ColourValue(0.0f, 0.5f, 1.0f),
166 Ogre::ColourValue(0.5f, 0.0f, 0.5f)
Interface for the SDFormat Editor's 3D Model Vewer.
Definition model_viewer_interface.h:34
class for handling inputs to the model viewer
Definition model_viewer.h:133
Implementation of SDFormatParserI.
Definition model_viewer.h:45
Ogre::ColourValue color_list[6]
list of random colours to assign model
Definition model_viewer.h:160
Ogre::SceneNode * sceneCameraNode
Pointer to the main scene camera node.
Definition model_viewer.h:122
ModelViewerKeyHandler keyHandler
instance of ModelViewerKeyHandler
Definition model_viewer.h:144
Ogre::Camera * sceneCamera
Pointer to the main scene camera.
Definition model_viewer.h:119
void HandleResetModelsFlag()
private method to handle reset models flag
Definition model_viewer.cpp:273
void Deinitialize()
Deallocates memory and quits the model viewer.
Definition model_viewer.cpp:148
std::atomic< bool > reset_models_flag
if true, reset model on next frame and set false
Definition model_viewer.h:173
void RenderFrame() override
Implementation of interface method.
Definition model_viewer.cpp:107
unsigned int color_list_index
A counter to keeps track of the current colour.
Definition model_viewer.h:170
OgreBites::CameraMan * cameraController
Pointer to the main camera controller.
Definition model_viewer.h:125
Ogre::Root * ogreRoot
Pointer to the ogre root.
Definition model_viewer.h:104
Ogre::SceneNode * sceneLightNode
Pointer to the main scene light node.
Definition model_viewer.h:116
std::mutex model_viewer_mutex
Mutex for thread safety.
Definition model_viewer.h:72
bool is_running
Indicates if the model viewer is running.
Definition model_viewer.h:78
bool IsRunning() override
Indicates if the model view is running.
Definition model_viewer.cpp:136
bool should_quit
Indicates if the model viewer should quit on the next iteration.
Definition model_viewer.h:75
void HandleAddModelQueue()
private method which pops ModelInfo's off the model queue and creates their OGRE entities.
Definition model_viewer.cpp:183
std::mutex & GetMutex() override
Implementation of interface method.
Definition model_viewer.cpp:131
void AddModel(ModelInfo model_info) override
Implementation of interface method.
Definition model_viewer.cpp:231
void Quit() override
Implementation of interface method.
Definition model_viewer.cpp:142
void Initialize() override
Implementation of interface method.
Definition model_viewer.cpp:60
Ogre::SceneManager * scnMgr
Pointer to the ogre scene manager.
Definition model_viewer.h:107
Ogre::Light * sceneLight
Pointer to the main scene light.
Definition model_viewer.h:113
void ResetModels() override
Implementation of the interface method.
Definition model_viewer.cpp:287
Ogre::RTShader::ShaderGenerator * shadergen
Pointer to the ogre shader generator singleton.
Definition model_viewer.h:110
ModelViewer()
Constructor.
Definition model_viewer.h:48
std::queue< ModelInfo > add_model_queue
queue to add models to model viewer
Definition model_viewer.h:128
OgreBites::ApplicationContext ctx
The ogre application context, which gives access to attributes from the render window.
Definition model_viewer.h:101
Struct representing information of a model's visual information.
Definition model_viewer_interface.h:36
Struct representing information of a model's visual information for pre-defined shapes.
Definition model_viewer_interface.h:52