What is this part supposed to do?
scale=bb[mViewHeight];
The format of the returned float array is minX, maxX, minY, maxY, minZ, maxZ, so you have to calculate bb[1]-bb[0] to get xDif and bb[3]-bb[2] for yDif...you get the idea, i guess. Then calculate the max value of these values (that matter to you, maybe just of xDif and yDif) and scale accordingly, i.e. if a model with size 100 fits fine with a scale of 2, one of size 200 would need 1, one of 50 would need 4 etc..