r1190 - trunk/code/qcommon

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Oct 6 17:59:18 EDT 2007


Author: tma
Date: 2007-10-06 17:59:17 -0400 (Sat, 06 Oct 2007)
New Revision: 1190

Modified:
   trunk/code/qcommon/cm_local.h
   trunk/code/qcommon/cm_patch.c
   trunk/code/qcommon/cm_test.c
   trunk/code/qcommon/cm_trace.c
Log:
* Bug fix to collision optimisation (arQon)


Modified: trunk/code/qcommon/cm_local.h
===================================================================
--- trunk/code/qcommon/cm_local.h	2007-10-02 14:14:45 UTC (rev 1189)
+++ trunk/code/qcommon/cm_local.h	2007-10-06 21:59:17 UTC (rev 1190)
@@ -185,6 +185,8 @@
 void CM_BoxLeafnums_r( leafList_t *ll, int nodenum );
 
 cmodel_t	*CM_ClipHandleToModel( clipHandle_t handle );
+qboolean CM_BoundsIntersect( const vec3_t mins, const vec3_t maxs, const vec3_t mins2, const vec3_t maxs2 );
+qboolean CM_BoundsIntersectPoint( const vec3_t mins, const vec3_t maxs, const vec3_t point );
 
 // cm_patch.c
 

Modified: trunk/code/qcommon/cm_patch.c
===================================================================
--- trunk/code/qcommon/cm_patch.c	2007-10-02 14:14:45 UTC (rev 1189)
+++ trunk/code/qcommon/cm_patch.c	2007-10-06 21:59:17 UTC (rev 1190)
@@ -1386,7 +1386,7 @@
 	static cvar_t *cv;
 #endif //BSPC
 
-	if ( !BoundsIntersect( tw->bounds[0], tw->bounds[1],
+	if ( !CM_BoundsIntersect( tw->bounds[0], tw->bounds[1],
 				pc->bounds[0], pc->bounds[1] ) ) {
 		return;
 	}

Modified: trunk/code/qcommon/cm_test.c
===================================================================
--- trunk/code/qcommon/cm_test.c	2007-10-02 14:14:45 UTC (rev 1189)
+++ trunk/code/qcommon/cm_test.c	2007-10-06 21:59:17 UTC (rev 1190)
@@ -250,7 +250,7 @@
 		brushnum = cm.leafbrushes[leaf->firstLeafBrush+k];
 		b = &cm.brushes[brushnum];
 
-		if ( !BoundsIntersectPoint( b->bounds[0], b->bounds[1], p ) ) {
+		if ( !CM_BoundsIntersectPoint( b->bounds[0], b->bounds[1], p ) ) {
 			continue;
 		}
 
@@ -480,3 +480,42 @@
 	return bytes;
 }
 
+/*
+====================
+CM_BoundsIntersect
+====================
+*/
+qboolean CM_BoundsIntersect( const vec3_t mins, const vec3_t maxs, const vec3_t mins2, const vec3_t maxs2 )
+{
+	if (maxs[0] < mins2[0] - SURFACE_CLIP_EPSILON ||
+		maxs[1] < mins2[1] - SURFACE_CLIP_EPSILON ||
+		maxs[2] < mins2[2] - SURFACE_CLIP_EPSILON ||
+		mins[0] > maxs2[0] + SURFACE_CLIP_EPSILON ||
+		mins[1] > maxs2[1] + SURFACE_CLIP_EPSILON ||
+		mins[2] > maxs2[2] + SURFACE_CLIP_EPSILON)
+	{
+		return qfalse;
+	}
+
+	return qtrue;
+}
+
+/*
+====================
+CM_BoundsIntersectPoint
+====================
+*/
+qboolean CM_BoundsIntersectPoint( const vec3_t mins, const vec3_t maxs, const vec3_t point )
+{
+	if (maxs[0] < point[0] - SURFACE_CLIP_EPSILON ||
+		maxs[1] < point[1] - SURFACE_CLIP_EPSILON ||
+		maxs[2] < point[2] - SURFACE_CLIP_EPSILON ||
+		mins[0] > point[0] + SURFACE_CLIP_EPSILON ||
+		mins[1] > point[1] + SURFACE_CLIP_EPSILON ||
+		mins[2] > point[2] + SURFACE_CLIP_EPSILON)
+	{
+		return qfalse;
+	}
+
+	return qtrue;
+}

Modified: trunk/code/qcommon/cm_trace.c
===================================================================
--- trunk/code/qcommon/cm_trace.c	2007-10-02 14:14:45 UTC (rev 1189)
+++ trunk/code/qcommon/cm_trace.c	2007-10-06 21:59:17 UTC (rev 1190)
@@ -685,7 +685,7 @@
 			continue;
 		}
 
-		if ( !BoundsIntersect( tw->bounds[0], tw->bounds[1],
+		if ( !CM_BoundsIntersect( tw->bounds[0], tw->bounds[1],
 					b->bounds[0], b->bounds[1] ) ) {
 			continue;
 		}




More information about the quake3-commits mailing list