bounding_sphere.h

Back to Bounding sphere

pastel/geometry/bounding/

// Description: An aggregate file for bounding spheres

#ifndef PASTELGEOMETRY_BOUNDING_SPHERE_H
#define PASTELGEOMETRY_BOUNDING_SPHERE_H

#include "pastel/geometry/bounding/bounding_sphere_alignedbox.h"
#include "pastel/geometry/bounding/bounding_sphere_box.h"
#include "pastel/geometry/bounding/bounding_sphere_segment.h"
#include "pastel/geometry/bounding/bounding_sphere_pointset.h"

#include "pastel/geometry/shape/sphere.h"
#include "pastel/geometry/shape/simplex.h"

namespace Pastel
{

    //! Finds the minimum volume bounding sphere of a 0-simplex.
    template <typename Real, integer N>
    Sphere<Real, N> boundingSphere(
        const PASTEL_SIMPLEX(Real, N, 0)& simplex);

    //! Finds the minimum volume bounding sphere of a 1-simplex.

    template <typename Real, integer N>
    Sphere<Real, N> boundingSphere(
        const PASTEL_SIMPLEX(Real, N, 1)& simplex);

    //! Finds the minimum volume bounding sphere of an M-simplex.

    template <typename Real, integer N, integer M>
    Sphere<Real, N> boundingSphere(
        const PASTEL_SIMPLEX(Real, N, M)& simplex);

    //! Finds the circumscribed sphere of a point.

    template <typename Real, integer N>
    Sphere<Real, N> circumscribedSphere(
        const Vector<Real, N>& aPoint);

    //! Finds the circumscribed sphere of two points.

    template <typename Real, integer N>
    Sphere<Real, N> circumscribedSphere(
        const Vector<Real, N>& aPoint,
        const Vector<Real, N>& bPoint);

    //! Finds the circumscribed sphere of a 0-simplex.

    template <typename Real, integer N>
    Sphere<Real, N> circumscribedSphere(
        const PASTEL_SIMPLEX(Real, N, 0)& simplex);

    //! Finds the circumscribed sphere of a 1-simplex.

    template <typename Real, integer N>
    Sphere<Real, N> circumscribedSphere(
        const PASTEL_SIMPLEX(Real, N, 1)& simplex);

    //! Finds the circumscribed sphere of an M-simplex.

    template <typename Real, integer N, integer M>
    Sphere<Real, N> circumscribedSphere(
        const PASTEL_SIMPLEX(Real, N, M)& simplex);

}

#include "pastel/geometry/bounding/bounding_sphere.hpp"

#endif