- for (j = 0, elements = surfmesh->element3i;j < surfmesh->numtriangles;j++, elements += 3)
- {
- VectorCopy((surfmesh->vertex3f + elements[0] * 3), trianglepoints[0]);
- VectorCopy((surfmesh->vertex3f + elements[1] * 3), trianglepoints[1]);
- VectorCopy((surfmesh->vertex3f + elements[2] * 3), trianglepoints[2]);
- if (PointInfrontOfTriangle(info->eye, trianglepoints[0], trianglepoints[1], trianglepoints[2])
- && Portal_PortalThroughPortalPlanes(&portalplanes[firstclipplane], numclipplanes, trianglepoints[0], 3, &portaltemppoints2[0][0], 256) >= 3)
+ trimins[0] = min(v[0][0], min(v[1][0], v[2][0]));
+ trimaxs[0] = max(v[0][0], max(v[1][0], v[2][0]));
+ trimins[1] = min(v[0][1], min(v[1][1], v[2][1]));
+ trimaxs[1] = max(v[0][1], max(v[1][1], v[2][1]));
+ trimins[2] = min(v[0][2], min(v[1][2], v[2][2]));
+ trimaxs[2] = max(v[0][2], max(v[1][2], v[2][2]));
+ if (BoxesOverlap(trimins, trimaxs, info->boxmins, info->boxmaxs))
+ if (Portal_PortalThroughPortalPlanes(&portalplanes[firstclipplane], numclipplanes, v[0], 3, &portaltemppoints2[0][0], 256) >= 3)