У меня есть два класса, Треугольник и Актив. У актива есть много треугольников, и я хочу, чтобы каждый треугольник знал, какому активу он принадлежит.
Все работало нормально, когда в Asset были только треугольники, но когда я указывал Triangle указатель на Asset, внезапно у меня возникало что-то вроде 100 ошибок, и Visual Studio не распознавала мой класс Triangle. Я предполагаю, что что-то не так с моими включениями, но я понятия не имею, что.
Вот мой заголовок Актива:
#ifndef ASSET_H
#define ASSET_H
#include <BoundingSphere.h>
class Triangle;
class Asset
{
public:
Asset::Asset(std::string assetOBJFile);
GLuint vertexArrayID;
GLuint programID;
GLuint vertexbuffer;
std::vector<GLuint> faces;
std::vector<glm::vec3> vertices;
std::vector<Triangle> originalTriangles;
std::vector<Triangle> triangles;
BoundingSphere boundingSphere;
glm::vec3 velocity;
double lastTime;
glm::vec3 position;
private:
void loadOBJ(const char* path);
};
#endif
и мой заголовок треугольника:
#ifndef TRIANGLE_H
#define TRIANGLE
class Asset;
class Triangle
{
public:
glm::vec3 _vertex0, _vertex1, _vertex2;
Asset* _asset;
Triangle(glm::vec3 vertex0, glm::vec3 vertex1, glm::vec3 vertex2, Asset* asset);
Triangle(glm::vec3 vertex0, glm::vec3 vertex1, glm::vec3 vertex2);
Triangle(glm::vec4 vertex0, glm::vec4 vertex1, glm::vec4 vertex2, Asset* asset);
private:
};
#endif
Задача ещё не решена.