Structural Bioinformatics Library
Template C++ / Python API for developping structural bioinformatics applications.
T_Space_filling_model_coarse_graining_outer_cover< AlphaComplex3 > Class Template Reference

Engine computing the outer cover of a set of balls from its inner cover. More...

#include <Space_filling_model_coarse_graining_outer_cover.hpp>

Classes

struct  Apollonius_cell
 Representation of a cell in the Apollonius diagram. More...
 
struct  Larger_distance_priority
 Functor comparing the distance of two points to the center of an input sphere. More...
 
struct  Larger_increment_priority
 Sort the Apollonius cells by decreasing volume constribution of their associated sphere. More...
 

Public Types

typedef T_Space_filling_model_coarse_graining_outer_cover< AlphaComplex3 > Self
 
typedef AlphaComplex3::Geom_traits::Kernel K
 3D geometric kernel defining the objects used in the alpha-complex. More...
 
typedef K::FT FT
 Number type used for representing the objects in the alpha-complex. More...
 
typedef K::Point_3 Point_3
 Center of a sphere in the inner approximation. More...
 
typedef K::Sphere_3 Sphere_3
 Representation of a sphere in the inner approximation. More...
 

Constructors

 T_Space_filling_model_coarse_graining_outer_cover (void)
 Default constructor. More...
 

Functor

template<class SphereIterator , class PointIterator , class OutputIterator >
OutputIterator operator() (SphereIterator begin_spheres, SphereIterator end_spheres, PointIterator begin_points, PointIterator end_points, OutputIterator out) const
 Create an outer cover of the input points whose balls are centered on the input spheres, using the Apollonius diagram. More...
 

Detailed Description

template<class AlphaComplex3>
class T_Space_filling_model_coarse_graining_outer_cover< AlphaComplex3 >

Engine computing the outer cover of a set of balls from its inner cover.

Let $\calO$ be an input family of 3D balls, $\domainO$ the domain of their union, and $\domainOB$ the boundary of the domain. We make the following assumptions:

  • for some $\eps_M > 0$, the one-sided Hausdorff distance between the boundary and the samples satisfies $\HDist{\domainOB}{\domainOP} \leq \eps_M$.

To solve the outer problem, we enlarge the balls from the set $\calS$, so as to cover the portion of $\domainOB$ sticking out from $\domainS$.

Let $C_p\subset \domainOP$ be a point set initially consisting of the points from the sampled boundary not covered by $\domainS$.

Let $C_B$ be the set of balls to be expanded, initialized as the subset of balls from the selection contributing to $\domainSB$.

For a given ball $B_i\in C_B$, we proceed in two stages. First, the point in $C_p \cap \vorCellApo{B_i}$ maximizing $\delta_i(p)$ is computed.

To account for the discretization, the corresponding additive distance is increased by $\eps_M$.

Second, the ball $B_i$ is removed from $C_B$, and all points in $C_p\cap \vorCellApo{B_i}$ are removed from $C_p$. The process is iterated until exhaustion of $C_p$.

Note that the previous algorithm does not require computing $\vorCellApo{B_i}$, since the assignment of a point to its Apollonius Voronoi cell only requires computing its additive distances to all balls in $C_B$.

Template Parameters
AlphaComplex3Model of an alpha-complex used for computing the volume of the different covers.

Member Typedef Documentation

◆ FT

typedef K::FT FT

Number type used for representing the objects in the alpha-complex.

◆ K

typedef AlphaComplex3::Geom_traits::Kernel K

3D geometric kernel defining the objects used in the alpha-complex.

◆ Point_3

typedef K::Point_3 Point_3

Center of a sphere in the inner approximation.

◆ Self

◆ Sphere_3

typedef K::Sphere_3 Sphere_3

Representation of a sphere in the inner approximation.

Constructor & Destructor Documentation

◆ T_Space_filling_model_coarse_graining_outer_cover()

Default constructor.

Member Function Documentation

◆ operator()()

OutputIterator operator() ( SphereIterator  begin_spheres,
SphereIterator  end_spheres,
PointIterator  begin_points,
PointIterator  end_points,
OutputIterator  out 
) const
inline

Create an outer cover of the input points whose balls are centered on the input spheres, using the Apollonius diagram.