From 57373e4d56945d7c8b7ce85becf1440e58e3a604 Mon Sep 17 00:00:00 2001 From: rodri Date: Tue, 8 Oct 2024 13:24:46 +0000 Subject: med: let the user load a model from a file. --- med.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/med.c b/med.c index 9eff0b3..b2ab44e 100644 --- a/med.c +++ b/med.c @@ -797,7 +797,7 @@ confproc(void) void usage(void) { - fprint(2, "usage: %s\n", argv0); + fprint(2, "usage: %s [mdlfile]\n", argv0); exits("usage"); } @@ -806,13 +806,18 @@ threadmain(int argc, char *argv[]) { Renderer *rctl; Channel *keyc; + char *mdlpath; + int fd; GEOMfmtinstall(); + mdlpath = nil; ARGBEGIN{ case 'p': doprof++; break; default: usage(); }ARGEND; - if(argc != 0) + if(argc == 1) + mdlpath = argv[0]; + else if(argc > 1) usage(); confproc(); @@ -821,7 +826,16 @@ threadmain(int argc, char *argv[]) sysfatal("couldn't find main shader"); scene = newscene(nil); - model = newmodel(); + if(mdlpath != nil){ + fd = open(mdlpath, OREAD); + if(fd < 0) + sysfatal("open: %r"); + model = readmodel(fd); + if(model == nil) + sysfatal("readmodel: %r"); + close(fd); + }else + model = newmodel(); subject = newentity("main", model); scene->addent(scene, subject); -- cgit v1.2.3