Structural Bioinformatics Library
Template C++ / Python API for developping structural bioinformatics applications.
T_Union_of_balls_boundary_patch_shelling_3_module< ModuleTraits, OutputArchive > Class Template Reference

Module computing the shelling order forests of particles in a binding patch. Module computing the shelling order forests of particles in a binding patch. More...

#include "Union_of_balls_boundary_patch_shelling_3_module.hpp"

Static Public Member Functions

static boost::program_options::options_description *& get_options (void)
 Access to the options' description of the module. More...
 

Traits Requirements

typedef ModuleTraits::Union_of_balls_boundary_3 Union_of_balls_boundary_3
 Representation of the boundary of the union of balls. More...
 
typedef ModuleTraits::Is_in_patch Is_in_patch
 Predicate checking that an input face of the boundary has its ball on a given patch. More...
 

Other Types

typedef SBL::GT::T_Union_of_balls_boundary_patch_shelling_3< Union_of_balls_boundary_3, Is_in_patchUnion_of_balls_boundary_patch_shelling_3
 Shelling diagram of a patch on the boundary of the union of 3D balls. More...
 
typedef Union_of_balls_boundary_patch_shelling_3::Face_shelling_forest Face_shelling_forest
 Shelling forest of the faces (i.e. spherical caps) of the spheres involved in a patch (see Cell_complex_shelling_diagram). More...
 
typedef Union_of_balls_boundary_patch_shelling_3::Ball_shelling_forest Ball_shelling_forest
 Shelling forest of the vertices of the alpha-complex involved in a patch (see Cell_complex_shelling_diagram). More...
 

Input Accessors

Union_of_balls_boundary_3 *& get_boundary (void)
 Reference to a pointer over the input boundary. More...
 
Is_in_patch *& get_is_in_patch (void)
 Reference to a pointer over the predicate representing the input patch. More...
 

Output Accessors

const Face_shelling_forestget_face_shelling_forest (void) const
 Const reference to the output Face Shelling Forest. More...
 
Face_shelling_forestget_face_shelling_forest (void)
 Reference to the output Face Shelling Forest. More...
 
const Ball_shelling_forestget_ball_shelling_forest (void) const
 Const reference to the output Ball Shelling Forest. More...
 
Ball_shelling_forestget_ball_shelling_forest (void)
 Reference to the output Ball Shelling Forest. More...
 

Mandatory Requirements

void run (unsigned verbose, std::ostream &out) override
 Runs the module following the input options. More...
 
bool is_runnable (void) const override
 Checks that all the input options were set. More...
 
void statistics (std::ostream &out) override
 Reports high-level statistics on the module. More...
 
std::string get_name (void) const override
 Returns the name of the package. More...
 

Optional Requirements

boost::program_options::options_description add_options (void) override
 Virtual method for adding options to the module. More...
 
bool check_options (std::string &message) const override
 Checks that the input options' values are coherent. More...
 
std::string get_output_prefix (void) const override
 Returns a prefix that concatains the input line options used when running the module. More...
 
void report (const std::string &prefix) override
 Reports the output and statistics in output files. More...
 

Modules Management

void set_module_instance_name (const std::string &module_instance_name)
 Sets a name for this instance of this module. In particular, it will be used in the prefix of output files generated by a collection of modules. More...
 
const std::string & get_module_instance_name (void) const
 Get the name of this instance of this module. More...
 
void set_report_mode (std::ios_base::openmode report_mode)
 Set a report mode, that is open or append modes. More...
 
void set_report_mode (std::ios_base::openmode &report_mode)
 Set a report mode, that is open or append modes. More...
 
const std::ios_base::openmode get_report_mode (void) const
 Get the report mode to be used when reporting. More...
 

Optional Requirements

void check_filesystem_directory_exists (const std::string &output_prefix)
 To avoid later crash: check filesystem / existence of directory / directory exists. More...
 

Others

template<class Self_ >
Self_ * clone (const Self_ *s) const
 Clones the object using the copy constructor. More...
 
virtual bool is_logical_module (void) const
 Checks that this module defines a logical operator. More...
 
virtual bool is_condition_module (void) const
 Checks that this module defines a condition operator. More...
 
virtual bool operator() (void)
 Only for condition modules, for returning the predicate value. More...
 
virtual bool is_modules_collection (void) const
 Checks that this module defines a collection of modules. More...
 

Detailed Description

template<class ModuleTraits, class OutputArchive = boost::archive::xml_oarchive>
class SBL::Modules::T_Union_of_balls_boundary_patch_shelling_3_module< ModuleTraits, OutputArchive >

Module computing the shelling order forests of particles in a binding patch. Module computing the shelling order forests of particles in a binding patch.

Remind that the the shelling order forest of the input balls in a patch requires to compute the boundary of the union of all the input balls. This boundary is represented using the class SBL::GT::T_Union_of_balls_boundary_3_data_structure that follows the concept HalfEdgeDataStructure of the CGAL library. As fully explained in the user manual Union_of_balls_boundary_patch_shelling_3, the computation is done on five steps:

  • computes the CCBS of patches using Union-Find over the halfedges.
  • computes the CCS of patches using Union-Find over the faces.
  • marks the largest CCB for each patch.
  • builds the Ball Shelling Forests of the patches by editing the corresponding Face Shelling Forests.

The input boundary of the union of all the input balls be set using the method SBL::Modules::T_Union_of_balls_boundary_patch_shelling_3_module::get_boundary, that returns a reference to a pointer over the input boundary.

The definition of the patch is given using a functor of type SBL::Modules::T_Union_of_balls_boundary_patch_shelling_3_module::Is_in_patch, that takes a face of the boundary as input, and returns true iff its associated ball is in the patch. This functor can be set using the method SBL::Modules::T_Union_of_balls_boundary_patch_shelling_3_module::get_is_in_patch, that returns a reference to a pointer over the input functor.

The output Ball Shelling Forest is accessible using the method SBL::Modules::T_Union_of_balls_boundary_patch_shelling_3_module::get_ball_shelling_forest.

Note that the Face Shelling Forest is also accessible using the method SBL::Modules::T_Union_of_balls_boundary_patch_shelling_3_module::get_face_shelling_forest.

Template Parameters
ModuleTraitsTraits class defining the types SBL::Modules::T_Union_of_balls_boundary_patch_shelling_3_module::Union_of_balls_boundary_3 and SBL::Modules::T_Union_of_balls_boundary_patch_shelling_3_module::Is_in_patch.
OutputArchiveArchive concept from the Boost library, allowing to switch between a full serialization of the output data with for example the class boost::archive::xml_oarchive, or a multiple archives serialization with the class SBL::IO::T_Multiple_archives_serialization_xml_oarchive.

Member Typedef Documentation

◆ Ball_shelling_forest

Shelling forest of the vertices of the alpha-complex involved in a patch (see Cell_complex_shelling_diagram).

◆ Face_shelling_forest

Shelling forest of the faces (i.e. spherical caps) of the spheres involved in a patch (see Cell_complex_shelling_diagram).

◆ Is_in_patch

typedef ModuleTraits::Is_in_patch Is_in_patch

Predicate checking that an input face of the boundary has its ball on a given patch.

◆ Union_of_balls_boundary_3

typedef ModuleTraits::Union_of_balls_boundary_3 Union_of_balls_boundary_3

Representation of the boundary of the union of balls.

Representation of the boundary of the union of balls.

Template Parameters
WeightedAlphaComplex3A Model of the 3D Weighted $\alpha$-complex of the CGAL Library.
IS_CCWTag allowing to orientate in CW or CCW the sense of the half-edges.
HalfedgeDSBaseBase data structure for the boundary of union of balls.

◆ Union_of_balls_boundary_patch_shelling_3

Shelling diagram of a patch on the boundary of the union of 3D balls.

Shelling diagram of a patch on the boundary of the union of 3D balls.

Template Parameters
UnionOfBallsBoundary3Representation of the boundary of a union of 3D balls.
IsInPatchSimple predicate checking that a face or a halfedge of the boundary is in a patch.

Member Function Documentation

◆ add_options()

boost::program_options::options_description add_options ( void  )
inlineoverridevirtual

Virtual method for adding options to the module.

Reimplemented from T_Module_option_description< Dummy >.

◆ check_filesystem_directory_exists()

void check_filesystem_directory_exists ( const std::string &  output_prefix)
inlineinherited

To avoid later crash: check filesystem / existence of directory / directory exists.

◆ check_options()

bool check_options ( std::string &  message) const
inlineoverridevirtual

Checks that the input options' values are coherent.

Reimplemented from T_Module_option_description< Dummy >.

◆ clone()

Self_* clone ( const Self_ *  s) const
inlineinherited

Clones the object using the copy constructor.

◆ get_ball_shelling_forest() [1/2]

T_Union_of_balls_boundary_patch_shelling_3_module< ModuleTraits, OutputArchive >::Ball_shelling_forest & get_ball_shelling_forest ( void  )
inline

Reference to the output Ball Shelling Forest.

◆ get_ball_shelling_forest() [2/2]

const T_Union_of_balls_boundary_patch_shelling_3_module< ModuleTraits, OutputArchive >::Ball_shelling_forest & get_ball_shelling_forest ( void  ) const
inline

Const reference to the output Ball Shelling Forest.

◆ get_boundary()

T_Union_of_balls_boundary_patch_shelling_3_module< ModuleTraits, OutputArchive >::Union_of_balls_boundary_3 *& get_boundary ( void  )
inline

Reference to a pointer over the input boundary.

◆ get_face_shelling_forest() [1/2]

T_Union_of_balls_boundary_patch_shelling_3_module< ModuleTraits, OutputArchive >::Face_shelling_forest & get_face_shelling_forest ( void  )
inline

Reference to the output Face Shelling Forest.

◆ get_face_shelling_forest() [2/2]

const T_Union_of_balls_boundary_patch_shelling_3_module< ModuleTraits, OutputArchive >::Face_shelling_forest & get_face_shelling_forest ( void  ) const
inline

Const reference to the output Face Shelling Forest.

◆ get_is_in_patch()

T_Union_of_balls_boundary_patch_shelling_3_module< ModuleTraits, OutputArchive >::Is_in_patch *& get_is_in_patch ( void  )
inline

Reference to a pointer over the predicate representing the input patch.

◆ get_module_instance_name()

const std::string& get_module_instance_name ( void  ) const
inlineinherited

Get the name of this instance of this module.

◆ get_name()

std::string get_name ( void  ) const
inlineoverridevirtual

Returns the name of the package.

Reimplemented from Module_base.

◆ get_options()

static boost::program_options::options_description*& get_options ( void  )
inlinestaticinherited

Access to the options' description of the module.

◆ get_output_prefix()

std::string get_output_prefix ( void  ) const
inlineoverridevirtual

Returns a prefix that concatains the input line options used when running the module.

Reimplemented from T_Module_option_description< Dummy >.

◆ get_report_mode()

const std::ios_base::openmode get_report_mode ( void  ) const
inlineinherited

Get the report mode to be used when reporting.

◆ is_condition_module()

virtual bool is_condition_module ( void  ) const
inlineprotectedvirtualinherited

Checks that this module defines a condition operator.

◆ is_logical_module()

virtual bool is_logical_module ( void  ) const
inlineprotectedvirtualinherited

Checks that this module defines a logical operator.

◆ is_modules_collection()

virtual bool is_modules_collection ( void  ) const
inlineprotectedvirtualinherited

Checks that this module defines a collection of modules.

◆ is_runnable()

bool is_runnable ( void  ) const
inlineoverridevirtual

Checks that all the input options were set.

Reimplemented from Module_base.

◆ operator()()

virtual bool operator() ( void  )
inlineprotectedvirtualinherited

Only for condition modules, for returning the predicate value.

◆ report()

void report ( const std::string &  prefix)
inlineoverridevirtual

Reports the output and statistics in output files.

Reimplemented from Module_base.

◆ run()

void run ( unsigned  verbose,
std::ostream &  out 
)
inlineoverridevirtual

Runs the module following the input options.

Implements Module_base.

◆ set_module_instance_name()

void set_module_instance_name ( const std::string &  module_instance_name)
inlineinherited

Sets a name for this instance of this module. In particular, it will be used in the prefix of output files generated by a collection of modules.

◆ set_report_mode() [1/2]

void set_report_mode ( std::ios_base::openmode &  report_mode)
inlineinherited

Set a report mode, that is open or append modes.

◆ set_report_mode() [2/2]

void set_report_mode ( std::ios_base::openmode  report_mode)
inlineinherited

Set a report mode, that is open or append modes.

◆ statistics()

void statistics ( std::ostream &  out)
inlineoverridevirtual

Reports high-level statistics on the module.

Reimplemented from Module_base.