From d246d2a798dacca6d81fb534ae0c3ef27b8fbc2b Mon Sep 17 00:00:00 2001 From: Eric Wasylishen Date: Sat, 22 Jul 2017 23:53:33 -0600 Subject: [PATCH] qbsp: add FlipWinding --- include/qbsp/winding.hh | 1 + qbsp/winding.cc | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/qbsp/winding.hh b/include/qbsp/winding.hh index 46d85137..c150a16d 100644 --- a/include/qbsp/winding.hh +++ b/include/qbsp/winding.hh @@ -38,6 +38,7 @@ winding_t *BaseWindingForPlane(const qbsp_plane_t *p); void CheckWinding(const winding_t *w); winding_t *NewWinding(int points); winding_t *CopyWinding(const winding_t *w); +winding_t *FlipWinding(const winding_t *w); winding_t *ClipWinding(winding_t *in, const qbsp_plane_t *split, bool keepon); void DivideWinding(const winding_t *in, const qbsp_plane_t *split, winding_t **front, winding_t **back); diff --git a/qbsp/winding.cc b/qbsp/winding.cc index 8d5a45c6..80a5b291 100644 --- a/qbsp/winding.cc +++ b/qbsp/winding.cc @@ -112,7 +112,19 @@ CopyWinding(const winding_t *w) return c; } - +/* +================== +FlipWinding +================== +*/ +winding_t *FlipWinding(const winding_t *w) +{ + winding_t *result = CopyWinding(w); + for (int i=0; inumpoints; i++) { + VectorCopy(w->points[i], result->points[w->numpoints - 1 - i]); + } + return result; +} /* ==================