From 0373255087377122eeb10e006ffb8aa1b57e611c Mon Sep 17 00:00:00 2001 From: rgl Date: Mon, 3 Feb 2020 22:42:28 +0100 Subject: after a year or so of work, i dare create a proper repo. --- libobj/obj.2.man | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 libobj/obj.2.man (limited to 'libobj/obj.2.man') diff --git a/libobj/obj.2.man b/libobj/obj.2.man new file mode 100644 index 0000000..9196385 --- /dev/null +++ b/libobj/obj.2.man @@ -0,0 +1,88 @@ +.TH OBJ 2 +.SH NAME +objparse, +objfree, +OBJfmt, +OBJfmtinstall +\- OBJ parser +.SH SYNOPSIS +.ta 0.7i +0.7i +0.7i +0.7i +0.7i +0.7i +0.7i +.EX +#include +#include +#include + +enum { + OBJVGeometric, + OBJVTexture, + OBJVNormal, + OBJVParametric, + OBJNVERT +}; + +enum { + OBJEPoint, + OBJELine, + OBJEFace, + OBJECurve, + OBJECurve2, + OBJESurface +}; + +enum { + OBJHTSIZE = 17 +}; + +typedef struct +{ + union { + struct { double x, y, z, w; }; /* geometric */ + struct { double u, v, vv; }; /* texture and parametric */ + struct { double i, j, k; }; /* normal */ + }; +} OBJVertex; + +typedef struct +{ + OBJVertex *verts; + int nvert; +} OBJVertexArray; + +typedef struct +{ + int *indices; + int nindex; + int type; + OBJElem *next; +} OBJElem; + +typedef struct +{ + char *name; + OBJElem *child; + OBJObject *next; +} OBJObject; + +typedef struct +{ + OBJVertexArray vertdata[OBJNVERT]; + OBJObject *objtab[OBJHTSIZE]; +} OBJ; + +OBJ *objparse(char *file); +void objfree(OBJ *obj); +int OBJfmt(Fmt*); +void OBJfmtinstall(void); +.EE +.SH DESCRIPTION +An OBJ structure contains geometry and material information about a set of 3D objects +.SH SOURCE +.B /sys/src/libobj +.SH SEE ALSO +.IR geometry (2) +.br +http://paulbourke.net/dataformats/obj +.br +https://people.sc.fsu.edu/~jburkardt/data/obj/obj.html +.SH DIAGNOSTICS +.SH BUGS -- cgit v1.2.3