Почему этот код дает мне ошибку в отношении идентификатора GLUquadric
? Насколько мне известно, GLFW включит его в сферу охвата.
#ifndef BALL_H
#define BALL_H
#define GLFW_INCLUDE_GLU
#include <GLFW/glfw3.h>
#include <glm/glm.hpp>
#include <glm/ext.hpp>
struct Cuboid;
struct Ball {
glm::vec3 position;
glm::vec3 velocity;
float radius;
glm::quat orientation;
glm::vec3 angular_velocity;
Ball(float radius);
};
void draw(const Ball& ball, GLUquadric* quadric);
void integrate(Ball& ball, float dt, const Cuboid& platform, glm::vec3 torque);
#endif
Я сам понял это решение. Похоже, что.cpp файл, который включает Ball.h
(тот, который я опубликовал), уже включал GLFW/glfw3.h
но не #define GLFW_INCLUDE_GLU
заранее. Я решил это, добавив определение в.cpp файл, но я полагаю, что, может быть, я мог бы лучше решить, создав свой собственный заголовок, opengl.h
:
#ifndef OPENGL_H
#define OPENGL_H
#define GLFW_INCLUDE_GLU
#include <GLFW/glfw3.h>
#endif
И затем включая это вместо GLFW/glfw3.h
.