changed BaseWindingForPlane to construct the polygon using

MAX_WORLD_COORD*2 as radius rather than MAX_WORLD_COORD, this fixes
problems with certain invalid brushes not being rejected because of
insufficiently large coords, usually causing a stack overflow when
constructing the BSP tree (due to insufficient "_blocksize")


git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@156 8a3a26a2-13c4-0310-b231-cf6edde360e5
This commit is contained in:
Forest Hale 2007-03-09 01:57:32 +00:00
parent 1086f5df1d
commit 77faf8018f
1 changed files with 5 additions and 2 deletions

View File

@ -249,8 +249,11 @@ winding_t *BaseWindingForPlane (vec3_t normal, vec_t dist)
CrossProduct (vup, normal, vright); CrossProduct (vup, normal, vright);
VectorScale (vup, MAX_WORLD_COORD, vup); // LordHavoc: this has to use *2 because otherwise some created points may
VectorScale (vright, MAX_WORLD_COORD, vright); // be inside the world (think of a diagonal case), and any brush with such
// points should be removed, failure to detect such cases is disasterous
VectorScale (vup, MAX_WORLD_COORD*2, vup);
VectorScale (vright, MAX_WORLD_COORD*2, vright);
// project a really big axis aligned box onto the plane // project a really big axis aligned box onto the plane
w = AllocWinding (4); w = AllocWinding (4);