В моей программе есть камера, которая перемещается/панорамируется при перемещении мыши. Как заставить его двигаться/панорамировать ТОЛЬКО при удерживании правой кнопки мыши?
Это моя функция, которая перемещает/панорамирует камеру. Я попытался добавить оператор if с помощью GLFW_MOUSE_BUTTON_RIGHT, но он не работает.
static void cursor_position_callback(GLFWwindow* window, double xpos, double ypos)
{
if (GLFW_MOUSE_BUTTON_RIGHT && GLFW_PRESS) {
// variables to store mouse cursor coordinates
static double previous_xpos = xpos;
static double previous_ypos = ypos;
double delta_x = xpos - previous_xpos;
double delta_y = ypos - previous_ypos;
// pass mouse movement to camera class
g_camera.updateYaw(delta_x);
g_camera.updatePitch(delta_y);
// update previous mouse coordinates
previous_xpos = xpos;
previous_ypos = ypos;
}
}
Не уверен, что это тоже имеет значение, но вот мой обратный вызов мыши. В моей программе есть твикбар.
static void mouse_button_callback(GLFWwindow* window, int button, int action, int mods)
{
// pass mouse data to tweak bar
TwEventMouseButtonGLFW(button, action);
}