Я пытаюсь обновить параметры моей камеры на основе движения мыши в OpenGL. Я использую GLFW. В GLFW есть предопределенный обработчик событий.
glfwSetCursorPosCallback(window, mouseMoveCallback);
который я использую для регистрации функции mouseMoveCallback(). Я объявил свою камеру в классе, и в программе используется экземпляр класса камеры. Члены класса Camera не являются статическими, но функция mouseMoveCallback является статической. Я знаю, что статическая функция не может получить доступ к нестатическим членам. Как лучше всего обновить членов нестатического экземпляра класса Camera?
Я могу получить требуемую функциональность, используя глобальные переменные и функцию mouseMoveCallback() для обновления глобальных переменных, а затем считывая обновленные глобальные значения из нестатических функций-членов. Но это может очень быстро стать уродливым, когда я хочу добавить больше параметров для чтения, таких как ввод с клавиатуры и т. Д. Поэтому я хотел знать, есть ли лучший способ сделать это.
object
, которую вы хотите обновить? Проблема не вclass
— вы где-то создали экземпляр объекта, и у этого объекта есть члены, которые вы хотите обновить. В основном вам нужно разработать способ доступа к объекту, независимо от того, сохраняет ли он его как глобальный, одноэлементный шаблон и т. д., а затем получает к нему доступ. - person PaulMcKenzie   schedule 21.04.2014