-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoff_struct.h
68 lines (49 loc) · 1.27 KB
/
off_struct.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "LA3D.cpp"
#include <vector>
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace::std;
typedef struct t_off_set {
std::vector<Ponto> pontos;
std::vector<Triangulo> faces;
} off_set;
void insertPoint(off_set & set, Ponto p){
set.pontos.push_back(p);
}
void insertFace(off_set & set, int idx1, int idx2, int idx3){
Triangulo t;
t.raiz = set.pontos[idx1];
t.direito = set.pontos[idx2];
t.esquerdo = set.pontos[idx3];
set.faces.push_back(t);
}
off_set makeOffSet(std::string filename){
off_set set;
int i;
int vertices, faces, arestas;
float x, y, z;
Ponto p;
int numVert, idx1, idx2, idx3;
std::ifstream infile(filename.c_str());
std::string line;
std::getline(infile,line);
std::getline(infile,line);
std::istringstream iss(line);
iss >> vertices >> faces >> arestas;
for(i = 0; i < vertices; i++){
std::getline(infile,line);
std::istringstream iss(line);
iss >> x >> y >>z;
p = makePonto(x, y, z);
insertPoint(set, p);
}
for(i = 0; i < faces; i++){
std::getline(infile,line);
std::istringstream iss(line);
iss >> numVert >> idx1 >> idx2 >>idx3;
insertFace(set, idx1, idx2, idx3);
}
return set;
}