added cylinder primitive
[csgray] / src / csgimpl.h
index d6cb7a4..90242a4 100644 (file)
@@ -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_ */