reset view before loading a new file,

reset view when pressing space
This commit is contained in:
Anakin 2016-11-12 13:53:49 +01:00
parent 1ab385475b
commit bbe657d030
3 changed files with 23 additions and 3 deletions

View File

@ -116,6 +116,7 @@ public:
void addTransX(double value);
void addTransY(double value);
void addTransZ(double value);
void resetView();
// main routine
GLFWwindow* getWindow() const;

View File

@ -269,6 +269,16 @@ void OpenGLController::addTransZ(double value)
dTranslationZ += value;
}
void OpenGLController::resetView()
{
dTranslationX = 0;
dTranslationY = 0;
dTranslationZ = 5;
fRotationX = 0;
fRotationY = 0;
fRotationZ = 0;
}
void OpenGLController::updateScene()
{
// get new matrices
@ -327,7 +337,7 @@ void OpenGLController::loadMsh(const char * path)
catch (std::invalid_argument e)
{
MessageBox(NULL, e.what(), "MeshViewer 2.0 Error", MB_OK | MB_ICONERROR);
exit(1);
return; exit(1);
}
// collect vertex data of all models

View File

@ -78,6 +78,8 @@ void mouseWheel(GLFWwindow *window, double xoffset, double yoffset)
void keyPress(GLFWwindow *window, int key, int scancode, int action, int mods)
{
OpenGLController* controller = reinterpret_cast<OpenGLController*>(glfwGetWindowUserPointer(window));
if (action == GLFW_PRESS || action == GLFW_REPEAT)
{
switch (key)
@ -93,6 +95,9 @@ void keyPress(GLFWwindow *window, int key, int scancode, int action, int mods)
case GLFW_KEY_PLUS_GER: case GLFW_KEY_KP_ADD:
mouse.speed += 0.1;
break;
case GLFW_KEY_SPACE:
controller->resetView();
break;
default:
break;
}
@ -102,6 +107,10 @@ void keyPress(GLFWwindow *window, int key, int scancode, int action, int mods)
void dragNdrop(GLFWwindow* window, int count, const char** paths)
{
OpenGLController* controller = reinterpret_cast<OpenGLController*>(glfwGetWindowUserPointer(window));
if(count > 0)
controller->loadMsh(paths[0]);
if (count < 1)
return;
controller->resetView();
controller->loadMsh(paths[0]);
}