bounding_sphere_alignedbox.hpp

Back to Bounding sphere

pastel/geometry/bounding/

#ifndef PASTELGEOMETRY_BOUNDING_SPHERE_ALIGNEDBOX_HPP
#define PASTELGEOMETRY_BOUNDING_SPHERE_ALIGNEDBOX_HPP

#include "pastel/geometry/bounding/bounding_sphere_alignedbox.h"

#include "pastel/sys/vector/vector_tools.h"

namespace Pastel
{

    template <typename Real, integer N>
    Sphere<Real, N> boundingSphere(
        const AlignedBox<Real, N>& alignedBox)
    {
        Vector<Real, N> delta = alignedBox.max() - alignedBox.min();
        return Sphere<Real, N>(
            linear(alignedBox.min(), alignedBox.max(), 0.5),

            std::sqrt(dot(delta)) * 0.5);
    }

}

#endif