Free Electron
Static Public Member Functions | Static Private Member Functions | List of all members
fe::ext::BoundingSphere< T > Class Template Reference

Bounding sphere for arbitrary points. More...

#include <BoundingSphere.h>

Static Public Member Functions

static void solve (const Vector< 3, T > *a_pEnclosed, U32 a_enclosedCount, Vector< 3, T > &a_rCenter, T &a_rRadius)
 
static void solveBoundary (const Vector< 3, T > **a_ppBoundary, U32 a_boundaryCount, Vector< 3, T > &a_rCenter, T &a_rRadius)
 create a sphere containing 0 to 4 points More...
 
static void solveBoundarySafe (const Vector< 3, T > **a_ppBoundary, U32 a_boundaryCount, Vector< 3, T > &a_rCenter, T &a_rRadius)
 create a sphere containing 0 to 4 points More...
 

Static Private Member Functions

static void solveRecursive (const Vector< 3, T > **a_ppPoints, U32 a_enclosedCount, U32 a_boundaryCount, Vector< 3, T > &a_rCenter, T &a_rRadius)
 

Detailed Description

template<typename T>
class fe::ext::BoundingSphere< T >

Bounding sphere for arbitrary points.

Emo Welzl's algorithm 1991

http://www.flipcode.com/archives/Smallest_Enclosing_Spheres.shtml

Member Function Documentation

◆ solveBoundary()

template<typename T >
void fe::ext::BoundingSphere< T >::solveBoundary ( const Vector< 3, T > **  a_ppBoundary,
U32  a_boundaryCount,
Vector< 3, T > &  a_rCenter,
T &  a_rRadius 
)
inlinestatic

create a sphere containing 0 to 4 points

If a_boundaryCount is zero or exceeds 4, a zero sphere at the origin is generated.

◆ solveBoundarySafe()

template<typename T >
void fe::ext::BoundingSphere< T >::solveBoundarySafe ( const Vector< 3, T > **  a_ppBoundary,
U32  a_boundaryCount,
Vector< 3, T > &  a_rCenter,
T &  a_rRadius 
)
inlinestatic

create a sphere containing 0 to 4 points

Checks for problematic redundant points, then calls solveBoundary().


The documentation for this class was generated from the following file: