ref: 2a1566a9ccda2ec5a256b16306c04cf8b43c14b5
dir: /test/main.c/
#include <u.h>
#include <libc.h>
#include "../stl.h"
static char fd0[] = "/fd/0";
void
usage(void)
{
fprint(2, "usage: %s [file]\n", argv0);
exits("usage");
}
static void
printfv(float *f)
{
print("%f\t%f\t%f", f[0], f[1], f[2]);
}
static void
printstl(Stl *stl)
{
int i;
print("header: %.*s\n", sizeof(stl->hdr), (char*)stl->hdr);
print("ntris: %ud\n", stl->ntris);
print("tris:\n");
for(i = 0; i < stl->ntris; i++){
print("\t%08d\n\t\tn\t", i);
printfv(stl->tris[i]->n);
print("\n\t\tp0\t");
printfv(stl->tris[i]->v[0]);
print("\n\t\tp1\t");
printfv(stl->tris[i]->v[1]);
print("\n\t\tp2\t");
printfv(stl->tris[i]->v[2]);
print("\n\t\tattrlen\t%d", stl->tris[i]->attrlen);
print("\n\t\tattrs: %.*s\n", stl->tris[i]->attrlen, (char*)stl->tris[i]->attrs);
}
}
void
main(int argc, char *argv[])
{
Stl *stl;
char *f;
int fd;
f = fd0;
ARGBEGIN{
default: usage();
}ARGEND;
if(argc > 1)
usage();
if(argc == 1)
f = argv[0];
fd = open(f, OREAD);
if(fd < 0)
sysfatal("open: %r");
stl = readstl(fd);
if(stl == nil)
sysfatal("readstl: %r");
close(fd);
printstl(stl);
freestl(stl);
exits(nil);
}