ref: 6be5044445e4206ab4d4f26949f752841b408322
parent: 9c83b71274dd94ffb66db6230580d6a315ea8548
author: rodri <rgl@antares-labs.eu>
date: Mon Jun 23 12:00:53 EDT 2025
toobj: remove redundant code
--- a/toobj.c
+++ b/toobj.c
@@ -96,78 +96,38 @@
switch(prim->type){case PPoint:
e = objallocelem(OBJEPoint);
+ break;
+ case PLine:
+ e = objallocelem(OBJELine);
+ break;
+ case PTriangle:
+ e = objallocelem(OBJEFace);
+ break;
+ default:
+ continue;
+ }
- v = GP3V(prim->v[0].p);
+ for(i = 0; i < prim->type+1; i++){+ v = GP3V(prim->v[i].p);
idx = objaddvertex(obj, v, OBJVGeometric);
objaddelemidx(e, OBJVGeometric, idx);
- if(memcmp(&prim->v[0].n, &ZP3, sizeof(Point3)) != 0){- v = GP3V(prim->v[0].n);
+ if(memcmp(&prim->v[i].n, &ZP3, sizeof(Point3)) != 0){+ v = GP3V(prim->v[i].n);
idx = objaddvertex(obj, v, OBJVNormal);
objaddelemidx(e, OBJVNormal, idx);
}
- if(memcmp(&prim->v[0].uv, &ZP2, sizeof(Point2)) != 0){- v = GP2V(prim->v[0].uv);
+ if(memcmp(&prim->v[i].uv, &ZP2, sizeof(Point2)) != 0){+ v = GP2V(prim->v[i].uv);
idx = objaddvertex(obj, v, OBJVTexture);
objaddelemidx(e, OBJVTexture, idx);
}
-
- if(prim->mtl != nil)
- e->mtl = objgetmtl(obj->materials, prim->mtl->name);
- objaddelem(o, e);
- break;
- case PLine:
- e = objallocelem(OBJELine);
-
- for(i = 0; i < prim->type+1; i++){- v = GP3V(prim->v[i].p);
- idx = objaddvertex(obj, v, OBJVGeometric);
- objaddelemidx(e, OBJVGeometric, idx);
-
- if(memcmp(&prim->v[i].n, &ZP3, sizeof(Point3)) != 0){- v = GP3V(prim->v[i].n);
- idx = objaddvertex(obj, v, OBJVNormal);
- objaddelemidx(e, OBJVNormal, idx);
- }
-
- if(memcmp(&prim->v[i].uv, &ZP2, sizeof(Point2)) != 0){- v = GP2V(prim->v[i].uv);
- idx = objaddvertex(obj, v, OBJVTexture);
- objaddelemidx(e, OBJVTexture, idx);
- }
- }
-
- if(prim->mtl != nil)
- e->mtl = objgetmtl(obj->materials, prim->mtl->name);
- objaddelem(o, e);
- break;
- case PTriangle:
- e = objallocelem(OBJEFace);
-
- for(i = 0; i < prim->type+1; i++){- v = GP3V(prim->v[i].p);
- idx = objaddvertex(obj, v, OBJVGeometric);
- objaddelemidx(e, OBJVGeometric, idx);
-
- if(memcmp(&prim->v[i].n, &ZP3, sizeof(Point3)) != 0){- v = GP3V(prim->v[i].n);
- idx = objaddvertex(obj, v, OBJVNormal);
- objaddelemidx(e, OBJVNormal, idx);
- }
-
- if(memcmp(&prim->v[i].uv, &ZP2, sizeof(Point2)) != 0){- v = GP2V(prim->v[i].uv);
- idx = objaddvertex(obj, v, OBJVTexture);
- objaddelemidx(e, OBJVTexture, idx);
- }
- }
-
- if(prim->mtl != nil)
- e->mtl = objgetmtl(obj->materials, prim->mtl->name);
- objaddelem(o, e);
- break;
}
+
+ if(prim->mtl != nil)
+ e->mtl = objgetmtl(obj->materials, prim->mtl->name);
+ objaddelem(o, e);
}
return m->nprims;
--
⑨