/*
** 2014 June 28
**
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
*/
package info.ata4.bspsrc.modules.geom;
import info.ata4.bsplib.struct.BspData;
import info.ata4.bsplib.struct.DBrush;
import info.ata4.bspsrc.util.AABB;
import info.ata4.bspsrc.util.WindingFactory;
/**
* Brush utility class.
*
* @author Nico Bergemann <barracuda415 at yahoo.de>
*/
public class BrushUtils {
private BrushUtils() {
}
/**
* Returns the bounding box of a brush by combining the bounding boxes of all
* its brush sides.
*
* @param bsp bsp data
* @param brush a brush
* @return the bounding box of the brush
*/
public static AABB getBounds(BspData bsp, DBrush brush) {
// add bounds of all brush sides
AABB bounds = new AABB();
for (int i = 0; i < brush.numside; i++) {
bounds = bounds.include(WindingFactory.fromSide(bsp, brush, i).getBounds());
}
return bounds;
}
}