- value = 5*facing - 5*splits; // - abs(front-back);
- if ( plane->type < 3 ) {
- value+=5; // axial is better
+
+ if ( bspAlternateSplitWeights ) {
+ // from 27
+
+ //Bigger is better
+ sizeBias = WindingArea( split->w );
+
+ //Base score = 20000 perfectly balanced
+ value = 20000 - ( abs( front - back ) );
+ value -= plane->counter; // If we've already used this plane sometime in the past try not to use it again
+ value -= facing ; // if we're going to have alot of other surfs use this plane, we want to get it in quickly.
+ value -= splits * 5; //more splits = bad
+ value += sizeBias * 10; //We want a huge score bias based on plane size
+ }
+ else
+ {
+ value = 5 * facing - 5 * splits; // - abs(front-back);
+ if ( plane->type < 3 ) {
+ value += 5; // axial is better
+ }