From 77e0a84543a31aecceabc0e4b18a0d37ad92c89b Mon Sep 17 00:00:00 2001 From: John Tsiombikas Date: Mon, 19 Feb 2018 20:26:07 +0200 Subject: [PATCH] simplified clip_poly and clip_frustum slightly --- src/bsptree.c | 1 + src/polyclip.c | 16 ++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/bsptree.c b/src/bsptree.c index 89f6c75..cd8e356 100644 --- a/src/bsptree.c +++ b/src/bsptree.c @@ -12,6 +12,7 @@ #include "inttypes.h" #include "polyclip.h" #include "vmath.h" +#include "util.h" struct bspfile_header { char magic[4]; diff --git a/src/polyclip.c b/src/polyclip.c index 67e1c83..28e8505 100644 --- a/src/polyclip.c +++ b/src/polyclip.c @@ -23,23 +23,23 @@ int clip_poly(struct g3d_vertex *vout, int *voutnum, { int i, nextidx, res; int edges_clipped = 0; - int out_vnum = 0; + + *voutnum = 0; for(i=0; i= vnum) nextidx = 0; - res = clip_edge(vout, &out_vnum, vin + i, vin + nextidx, plane); + res = clip_edge(vout, voutnum, vin + i, vin + nextidx, plane); if(res == 0) { ++edges_clipped; } } - if(out_vnum <= 0) { + if(*voutnum <= 0) { assert(edges_clipped == 0); return -1; } - *voutnum = out_vnum; return edges_clipped > 0 ? 0 : 1; } @@ -49,28 +49,28 @@ int clip_frustum(struct g3d_vertex *vout, int *voutnum, { int i, nextidx, res; int edges_clipped = 0; - int out_vnum = 0; if(vnum == 1) { /* special case: point clipping */ return inside_frustum_plane(vin, fplane) ? 1 : -1; } + *voutnum = 0; + for(i=0; i= vnum) nextidx = 0; - res = clip_edge_frustum(vout, &out_vnum, vin + i, vin + nextidx, fplane); + res = clip_edge_frustum(vout, voutnum, vin + i, vin + nextidx, fplane); if(res == 0) { ++edges_clipped; } } - if(out_vnum <= 0) { + if(*voutnum <= 0) { assert(edges_clipped == 0); return -1; } - *voutnum = out_vnum; return edges_clipped > 0 ? 0 : 1; } -- 1.7.10.4