bounding_sphere_pointset.h

Back to Bounding sphere

pastel/geometry/bounding/

// Description: Bounding sphere of a point-set

#ifndef PASTELGEOMETRY_BOUNDING_SPHERE_POINTSET_H
#define PASTELGEOMETRY_BOUNDING_SPHERE_POINTSET_H

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

#include "pastel/sys/point/point_concept.h"
#include "pastel/sys/pointset/pointset_concept.h"

namespace Pastel
{

    //! Finds the minimum volume bounding sphere of two points.
    template <
        typename A_Point,
        typename B_Point,
        Requires<
            Models<A_Point, Point_Concept>,
            Models<B_Point, Point_Concept>
        > = 0
    >
    Sphere<Point_Real<A_Point>, Point_N<A_Point>::value> 
        boundingSphere(
            const A_Point& aPoint,
            const B_Point& bPoint);

    //! Finds a bounding sphere of a point set.
    template <
        typename PointSet,
        Requires<
            Models<PointSet, PointSet_Concept>
        > = 0
    >
    Sphere<PointSet_Real<PointSet>, PointSet_Dimension<PointSet>::value> 
        boundingSphere(const PointSet& pointSet);

}

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

#endif