1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | void obj::ReadFromOBJFile(string filename) { vector<vertex> vertices; ifstream input(filename); int normal_count = 0; char sub; while( input >> sub) { if(sub == 'v') { float f1,f2,f3; input >> f1 >> f2 >> f3; vertices.push_back( vertex(f1, f2, f3) ); } else if(sub == 'f') { int i1, i2, i3; input >> i1 >> i2 >> i3; face f( vertices[i1-1], vertices[i2-1], vertices[i3-1]); vFace.push_back(f); } } } | cs |
근데 이부분이 상당히 냄새가 남
이 함수를 빠져 나가면 vector<vertex> vertices; 이 변수는 죽어버릴텐데
그 때 문제가 생기지 싶네요
vector<vertex> vertices; 대신에
vector<vertex*> vertices;를 쓰고 vertex들을 동적할당해서 먹여보는 건 어떨까욤
어디서 assertion failed가 일어나는지 콜스택이 있으면 더 좋을텐데 뭐라 말을 못하겠음
엉 그리고 face에서 vertex 받는 생성자도
1 2 3 4 5 6 7 8 9 | face(vertex v1, vertex v2, vertex v3) { *vtx = new vertex[3]; for (int i = 0; i < 3; i++) { vtx[i] = new vertex; } *vtx[0] = v1; *vtx[1] = v2; *vtx[2] = v3; } | cs |
좀 불길해보임 const vertex* v1 뭐 이런식으로 해서 동적할당된 놈을 받아야될거 같음
아님 말고
물론 원인 따윈 모르겠습니다 생각해보니 onpengl이 없어서 빌드를 못하넴 ㅋㅋ
그래서 정말 "아니면 말고" 입니다.
게다가 다시 코드 읽기 귀찮아져서 더는 안되겠음 공부하러 가야겠음
선형대수... 미적분.... 시...험....
흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑흑 너무슬프다
근데 그... 교수님들이 싫어할 거 같은 다양한 종류의 잘못됨이 코오드에서 느껴지지만 지금은 버그가 중요하니 언급하진 않을게용
그리고 잔소리하는 꼰대 같을까봐 안 함 ㅋ
악악악악악악악악악악악악악악악악악악악악악악악악악악악악악악악악악악악악악악
Colorscripter