X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fcsgimpl.h;h=90242a4f4c973a3c7dcbcfee24095d8596b3e706;hb=HEAD;hp=d6cb7a4f031f34d18c2ca9952afb8ad4d64f2cd1;hpb=07ca36e28aa10804ba5a544276eb5a25f8105e0f;p=csgray diff --git a/src/csgimpl.h b/src/csgimpl.h index d6cb7a4..90242a4 100644 --- a/src/csgimpl.h +++ b/src/csgimpl.h @@ -21,10 +21,12 @@ struct object { float emr, emg, emb; float roughness; float opacity; + int metallic; float xform[16], inv_xform[16]; csg_object *next; + csg_object *plt_next; void (*destroy)(csg_object*); }; @@ -36,7 +38,7 @@ struct sphere { struct cylinder { struct object ob; - float rad; + float rad, height; }; struct plane { @@ -45,6 +47,11 @@ struct plane { float d; }; +struct box { + struct object ob; + float xsz, ysz, zsz; +}; + struct csgop { struct object ob; csg_object *a, *b; @@ -55,13 +62,19 @@ union csg_object { struct sphere sph; struct cylinder cyl; struct plane plane; + struct box box; struct csgop un, isect, sub; }; struct camera { float x, y, z; float tx, ty, tz; + float ux, uy, uz; float fov; + + float xform[16]; }; +int csg_dbg_pixel; + #endif /* CSGIMPL_H_ */