ref: 7be2c8b1026096abd0bcfc9ea76fcdecaa2b2ea2
parent: 464cd853b0292237c829d72559bb11035130d1bc
author: rodri <rgl@antares-labs.eu>
date: Sun Jun 22 13:14:59 EDT 2025
make objaddvertex() return the vertex index. fix some stuff
--- a/obj.c
+++ b/obj.c
@@ -268,17 +268,18 @@
return -1;
}
-static void
+static int
addvertva(OBJVertexArray *va, OBJVertex v)
{
- va->verts = erealloc(va->verts, ++va->nvert*sizeof(OBJVertex));
- va->verts[va->nvert-1] = v;
+ va->verts = erealloc(va->verts, (va->nvert + 1)*sizeof(OBJVertex));
+ va->verts[va->nvert++] = v;
+ return va->nvert-1;
}
-void
+int
objaddvertex(OBJ *obj, OBJVertex v, int vtype)
{
- addvertva(&obj->vertdata[vtype], v);
+ return addvertva(&obj->vertdata[vtype], v);
}
void
@@ -309,8 +310,8 @@
OBJIndexArray *tab;
tab = &e->indextab[idxtab];
- tab->indices = erealloc(tab->indices, ++tab->nindex*sizeof(int));
- tab->indices[tab->nindex-1] = idx;
+ tab->indices = erealloc(tab->indices, (tab->nindex + 1)*sizeof(int));
+ tab->indices[tab->nindex++] = idx;
}
void
@@ -1119,17 +1120,17 @@
if(m->map_Kd != nil){
seprint(pe, bufe, "/%s", m->map_Kd->filename);
if(writeimagefile(buf, m->map_Kd->image) < 0)
- fprint(2, "writeimagefile: %r");
+ fprint(2, "writeimagefile: %r\n");
}
if(m->map_Ks != nil){
seprint(pe, bufe, "/%s", m->map_Ks->filename);
if(writeimagefile(buf, m->map_Ks->image) < 0)
- fprint(2, "writeimagefile: %r");
+ fprint(2, "writeimagefile: %r\n");
}
if(m->norm != nil){
seprint(pe, bufe, "/%s", m->norm->filename);
if(writeimagefile(buf, m->norm->image) < 0)
- fprint(2, "writeimagefile: %r");
+ fprint(2, "writeimagefile: %r\n");
}
}
--- a/obj.h
+++ b/obj.h
@@ -134,7 +134,7 @@
OBJMaterlist *materials;
};
-void objaddvertex(OBJ*, OBJVertex, int);
+int objaddvertex(OBJ*, OBJVertex, int);
void objaddelem(OBJObject*, OBJElem*);
OBJElem *objallocelem(int);
void objaddelemidx(OBJElem*, int, int);
--
⑨