_compVect1.set(xExtent, yExtent, zExtent); rotate.mult(_compVect1, _compVect2);
Matrix3f transMatrix = _compMat; transMatrix.set(rotate);  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);
    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);        _compVect1.set(xExtent, yExtent, zExtent);        rotate.mult(_compVect1, _compVect2);        // Assign the biggest rotations after scales.        box.xExtent = _compVect2.x * scale.x;        box.yExtent = _compVect2.y * scale.y;        box.zExtent = _compVect2.z * scale.z;        return box;    }