+void Collision_TraceBrushTriangleFloat(trace_t *trace, const colbrushf_t *thisbrush_start, const colbrushf_t *thisbrush_end, const float *v0, const float *v1, const float *v2, int supercontents, int q3surfaceflags, const texture_t *texture)
+{
+ int i;
+ colpointf_t points[3];
+ colpointf_t edgedirs[3];
+ colplanef_t planes[5];
+ colbrushf_t brush;
+ memset(&brush, 0, sizeof(brush));
+ brush.isaabb = false;
+ brush.hasaabbplanes = false;
+ brush.numpoints = 3;
+ brush.numedgedirs = 3;
+ brush.numplanes = 5;
+ brush.points = points;
+ brush.edgedirs = edgedirs;
+ brush.planes = planes;
+ brush.supercontents = supercontents;
+ brush.q3surfaceflags = q3surfaceflags;
+ brush.texture = texture;
+ for (i = 0;i < brush.numplanes;i++)
+ {
+ brush.planes[i].q3surfaceflags = q3surfaceflags;
+ brush.planes[i].texture = texture;
+ }
+ VectorCopy(v0, points[0].v);
+ VectorCopy(v1, points[1].v);
+ VectorCopy(v2, points[2].v);
+ Collision_SnapCopyPoints(brush.numpoints, points, points, COLLISION_SNAPSCALE, COLLISION_SNAP);
+ Collision_CalcEdgeDirsForPolygonBrushFloat(&brush);
+ Collision_CalcPlanesForPolygonBrushFloat(&brush);
+ //Collision_PrintBrushAsQHull(&brush, "brush");
+ Collision_TraceBrushBrushFloat(trace, thisbrush_start, thisbrush_end, &brush, &brush);
+}
+
+void Collision_BrushForBox(colboxbrushf_t *boxbrush, const vec3_t mins, const vec3_t maxs, int supercontents, int q3surfaceflags, const texture_t *texture)