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이 없어서 빌드를 못하넴 ㅋㅋ

그래서 정말 "아니면 말고" 입니다.


게다가 다시 코드 읽기 귀찮아져서 더는 안되겠음 공부하러 가야겠음

선형대수... 미적분.... 시...험....