};
#ifdef DEBUG
+# ifdef __GNUC__ /* GCC style */
#define _DEBUG(msg, args...) do { \
fprintf(stderr, "%s : %d : " msg ,__FILE__,__LINE__ ,##args); \
} while(0)
+# else /* C99 standard style */
+#define _DEBUG(msg, ...) do { \
+ fprintf(stderr, "%s : %d : " msg ,__FILE__,__LINE__,__VA_ARGS__); \
+} while(0)
+# endif
#else
+# ifdef __GNUC__ /* GCC style */
#define _DEBUG(msg, args...)
+# else /* C99 standard style */
+#define _DEBUG(msg, ...)
+# endif
#endif
/* This is all the half-edge b-rep code (as well as basic geometry) */
return h->e->left;
}
else {
- _DEBUG("Inconsistent edge detected. Presumably, this is a bug. Exiting.\n");
+ _DEBUG("Inconsistent edge detected. Presumably, this is a bug. Exiting.\n", NULL);
exit(-1);
}
}
hedge *h = (hedge*)malloc(sizeof(hedge));
if(!h) {
- _DEBUG("Out of memory in hedge_new()\n");
+ _DEBUG("Out of memory in hedge_new()\n",NULL);
return NULL;
}
h->f = hafter->f;
{
edge *e = (edge*)malloc(sizeof(edge));
if(!e) {
- _DEBUG("Out of memory in edge_new()\n");
+ _DEBUG("Out of memory in edge_new()\n",NULL);
exit(-1);
}
e->next = s->edges;
{
face *f = (face*)malloc(sizeof(face));
if(!f) {
- _DEBUG("Out of memory in face_new()");
+ _DEBUG("Out of memory in face_new()",NULL);
exit(-1);
}
f->s = s;
face *fn;
if(h1->f != f || h2->f != f) {
- _DEBUG("Whoah, cap'n, yer usin' a bad halfedge!\n");
+ _DEBUG("Whoah, cap'n, yer usin' a bad halfedge!\n",NULL);
exit(-1);
}
if(h1 == h2) {
- _DEBUG("Trying to split a face at a single vertex\n");
+ _DEBUG("Trying to split a face at a single vertex\n",NULL);
exit(-1);
}
/* close the loops */
{
const GLfloat lpos0[4] = {-12, 8, 12, 0};
const GLfloat lpos1[4] = {7, -5, 0, 0};
- const GLfloat lcol0[4] = {0.7, 0.7, 0.65, 1};
- const GLfloat lcol1[4] = {0.3, 0.2, 0.1, 1};
- const GLfloat scolor[4]= {0.9, 0.9, 0.9, 0.5};
+ const GLfloat lcol0[4] = {0.7f, 0.7f, 0.65f, 1};
+ const GLfloat lcol1[4] = {0.3f, 0.2f, 0.1f, 1};
+ const GLfloat scolor[4]= {0.9f, 0.9f, 0.9f, 0.5f};
glDrawBuffer(GL_BACK);
glClearColor(0, 0, 0, 0);