From 90aa6168663ae502a2d7132fdaef8d00e3454985 Mon Sep 17 00:00:00 2001 From: Kevin Shanahan Date: Tue, 6 May 2014 20:30:15 +0930 Subject: [PATCH] qbsp: fix coordinates in degenerate edge error in tjunc.c The error message was actually displaying the edge vector, which is always going to be ~(0,0,0). Pass in the edge end points and then we can display both the length of the edge and the location of one end point. Signed-off-by: Kevin Shanahan --- qbsp/tjunc.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/qbsp/tjunc.c b/qbsp/tjunc.c index 9db220e5..fafb1ad5 100644 --- a/qbsp/tjunc.c +++ b/qbsp/tjunc.c @@ -79,9 +79,12 @@ HashVec(vec3_t vec) //============================================================================ static void -CanonicalVector(vec3_t vec) +CanonicalVector(const vec3_t p1, const vec3_t p2, vec3_t vec) { - VectorNormalize(vec); + vec_t length; + + VectorSubtract(p2, p1, vec); + length = VectorNormalize(vec); if (vec[0] > EQUAL_EPSILON) return; else if (vec[0] < -EQUAL_EPSILON) { @@ -106,7 +109,8 @@ CanonicalVector(vec3_t vec) } else vec[2] = 0; - Error("Degenerate edge at (%.3f %.3f %.3f)", vec[0], vec[1], vec[2]); + Error("Degenerate edge of length %f at (%.3f %.3f %.3f)", + length, p1[0], p1[1], p1[2]); } static wedge_t * @@ -118,8 +122,7 @@ FindEdge(vec3_t p1, vec3_t p2, vec_t *t1, vec_t *t2) vec_t temp; int h; - VectorSubtract(p2, p1, edgevec); - CanonicalVector(edgevec); + CanonicalVector(p1, p2, edgevec); *t1 = DotProduct(p1, edgevec); *t2 = DotProduct(p2, edgevec);