quad obj support
This commit is contained in:
parent
be5e710521
commit
c6ce943f61
2 changed files with 30 additions and 14 deletions
|
|
@ -231,5 +231,5 @@ void fishbone::Renderer::prepare() {
|
|||
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
lookAt({2, 2, 2}, {0, 0, 0});
|
||||
lookAt({4, 4, 4}, {0, 0, 0});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,10 +72,12 @@ fishbone::MeshData::MeshData(fishbone::File* f) {
|
|||
|
||||
vn.push_back(nv);
|
||||
} else if(vs[0] == "f") {
|
||||
float sc = 0;
|
||||
float lr = fabs(lm - rm);
|
||||
float ud = fabs(um - dm);
|
||||
float bf = fabs(fm - bm);
|
||||
float sc = 0;
|
||||
float lr = fabs(lm - rm);
|
||||
float ud = fabs(um - dm);
|
||||
float bf = fabs(fm - bm);
|
||||
std::vector<int> ind;
|
||||
struct fishbone::Vector3 v3;
|
||||
|
||||
if(sc < lr) sc = lr;
|
||||
if(sc < ud) sc = ud;
|
||||
|
|
@ -83,17 +85,31 @@ fishbone::MeshData::MeshData(fishbone::File* f) {
|
|||
|
||||
sc /= 2;
|
||||
|
||||
#define PUSH(i) \
|
||||
ind = parseFace(vs[i]); \
|
||||
v3 = v[ind[0] - 1]; \
|
||||
\
|
||||
v3.x /= sc; \
|
||||
v3.y /= sc; \
|
||||
v3.z /= sc; \
|
||||
\
|
||||
this->vertices.push_back(v3); \
|
||||
this->texcoords.push_back(ind.size() >= 2 ? vt[ind[1] - 1] : e2); \
|
||||
this->normals.push_back(ind.size() >= 3 ? vn[ind[2] - 1] : e3);
|
||||
|
||||
for(int i = 1; i < 4; i++) {
|
||||
std::vector<int> ind = parseFace(vs[i]);
|
||||
struct fishbone::Vector3 v3 = v[ind[0] - 1];
|
||||
PUSH(i);
|
||||
}
|
||||
|
||||
v3.x /= sc;
|
||||
v3.y /= sc;
|
||||
v3.z /= sc;
|
||||
|
||||
this->vertices.push_back(v3);
|
||||
this->texcoords.push_back(ind.size() >= 2 ? vt[ind[1] - 1] : e2);
|
||||
this->normals.push_back(ind.size() >= 3 ? vn[ind[2] - 1] : e3);
|
||||
/* If it's quad...
|
||||
* 1-4
|
||||
* |\|
|
||||
* 2-3
|
||||
*/
|
||||
if(vs.size() == 5) {
|
||||
PUSH(3);
|
||||
PUSH(4);
|
||||
PUSH(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue