我有两个班,Triangle和Asset。资产有很多三角形,我希望每个三角形都知道它属于哪个资产。
当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
和我的Triangle标题:
#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