reset view before loading a new file,
reset view when pressing space
This commit is contained in:
parent
1ab385475b
commit
bbe657d030
|
@ -116,6 +116,7 @@ public:
|
||||||
void addTransX(double value);
|
void addTransX(double value);
|
||||||
void addTransY(double value);
|
void addTransY(double value);
|
||||||
void addTransZ(double value);
|
void addTransZ(double value);
|
||||||
|
void resetView();
|
||||||
|
|
||||||
// main routine
|
// main routine
|
||||||
GLFWwindow* getWindow() const;
|
GLFWwindow* getWindow() const;
|
||||||
|
|
|
@ -269,6 +269,16 @@ void OpenGLController::addTransZ(double value)
|
||||||
dTranslationZ += value;
|
dTranslationZ += value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OpenGLController::resetView()
|
||||||
|
{
|
||||||
|
dTranslationX = 0;
|
||||||
|
dTranslationY = 0;
|
||||||
|
dTranslationZ = 5;
|
||||||
|
fRotationX = 0;
|
||||||
|
fRotationY = 0;
|
||||||
|
fRotationZ = 0;
|
||||||
|
}
|
||||||
|
|
||||||
void OpenGLController::updateScene()
|
void OpenGLController::updateScene()
|
||||||
{
|
{
|
||||||
// get new matrices
|
// get new matrices
|
||||||
|
@ -327,7 +337,7 @@ void OpenGLController::loadMsh(const char * path)
|
||||||
catch (std::invalid_argument e)
|
catch (std::invalid_argument e)
|
||||||
{
|
{
|
||||||
MessageBox(NULL, e.what(), "MeshViewer 2.0 Error", MB_OK | MB_ICONERROR);
|
MessageBox(NULL, e.what(), "MeshViewer 2.0 Error", MB_OK | MB_ICONERROR);
|
||||||
exit(1);
|
return; exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// collect vertex data of all models
|
// collect vertex data of all models
|
||||||
|
|
|
@ -78,6 +78,8 @@ void mouseWheel(GLFWwindow *window, double xoffset, double yoffset)
|
||||||
|
|
||||||
void keyPress(GLFWwindow *window, int key, int scancode, int action, int mods)
|
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)
|
if (action == GLFW_PRESS || action == GLFW_REPEAT)
|
||||||
{
|
{
|
||||||
switch (key)
|
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:
|
case GLFW_KEY_PLUS_GER: case GLFW_KEY_KP_ADD:
|
||||||
mouse.speed += 0.1;
|
mouse.speed += 0.1;
|
||||||
break;
|
break;
|
||||||
|
case GLFW_KEY_SPACE:
|
||||||
|
controller->resetView();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
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)
|
void dragNdrop(GLFWwindow* window, int count, const char** paths)
|
||||||
{
|
{
|
||||||
OpenGLController* controller = reinterpret_cast<OpenGLController*>(glfwGetWindowUserPointer(window));
|
OpenGLController* controller = reinterpret_cast<OpenGLController*>(glfwGetWindowUserPointer(window));
|
||||||
if(count > 0)
|
|
||||||
|
if (count < 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
controller->resetView();
|
||||||
controller->loadMsh(paths[0]);
|
controller->loadMsh(paths[0]);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue