box.center.multLocal(scale).addLocal(translate);
box.center.addLocal(translate);
    public BoundingVolume transform(Quaternion rotate, Vector3f translate,            Vector3f scale, BoundingVolume store) {        BoundingBox box;        if (store == null || store.getType() != BoundingVolume.BOUNDING_BOX) {            box = new BoundingBox();        } else {            box = (BoundingBox) store;        }        rotate.mult(center, box.center);        box.center.multLocal(scale).addLocal(translate);        Matrix3f transMatrix = _compMat;        transMatrix.set(rotate);        // Make the rotation matrix all positive to get the maximum x/y/z extent        transMatrix.m00 = FastMath.abs(transMatrix.m00);        transMatrix.m01 = FastMath.abs(transMatrix.m01);        transMatrix.m02 = FastMath.abs(transMatrix.m02);        transMatrix.m10 = FastMath.abs(transMatrix.m10);        transMatrix.m11 = FastMath.abs(transMatrix.m11);        transMatrix.m12 = FastMath.abs(transMatrix.m12);        transMatrix.m20 = FastMath.abs(transMatrix.m20);        transMatrix.m21 = FastMath.abs(transMatrix.m21);        transMatrix.m22 = FastMath.abs(transMatrix.m22);        _compVect1.set(xExtent * scale.x, yExtent * scale.y, zExtent * scale.z);        transMatrix.mult(_compVect1, _compVect2);        // Assign the biggest rotations after scales.        box.xExtent = _compVect2.x;        box.yExtent = _compVect2.y;        box.zExtent = _compVect2.z;        return box;    }