Classes | Functions | Variables

mln::topo::internal Namespace Reference

Complex data. More...

Classes

struct  add_size
 A binary meta-functor defined by: More...
class  adj_higher_dim_connected_n_face_iterator
class  adj_lower_dim_connected_n_face_iterator
class  adj_m_face_iterator
class  backward_complex_relative_iterator_base
 Factoring class for backward relative iterators on mln::complex. More...
struct  complex_data
 Complex data. More...
class  complex_iterator_base
 Factoring class for iterators on mln::complex. More...
class  complex_relative_iterator_base
 Factoring class for relative iterators on mln::complex. More...
class  complex_relative_iterator_sequence
 A meta relative iterator on the faces of a complex using two complex relative iterators sequentially. More...
class  complex_set_iterator_base
 Factoring class for (set) iterators on mln::complex. More...
struct  const_face_type_
struct  faces_set_mixin
 Faces of intermediate dimension (greater than 0, lower than D). More...
struct  faces_set_mixin< 0u, 0u >
 Faces of a 0-complex. More...
struct  faces_set_mixin< 0u, D >
 Faces of lowest dimension (0). More...
struct  faces_set_mixin< D, D >
 Faces of highest dimension (D). More...
class  forward_complex_relative_iterator_base
 Factoring class for forward relative iterators on mln::complex. More...
struct  get_size
 An unary meta-functor defined by: More...
struct  higher_dim_adj_faces_if_dim_matches_
struct  higher_dim_adj_faces_if_dim_matches_< 0, D >
class  higher_dim_faces_data_mixin
struct  higher_dim_faces_set_mixin
struct  lower_dim_adj_faces_if_dim_matches_
struct  lower_dim_adj_faces_if_dim_matches_< 1, D >
class  lower_dim_faces_data_mixin
 Factored implementation of faces. More...
struct  lower_dim_faces_set_mixin
 Mixins of mixin mln::faces_set_mixin. More...

Functions

template<typename F , typename E >
std::ostream & operator<< (std::ostream &ostr, const complex_iterator_base< F, E > &p)
 Print an mln::topo::internal::complex_iterator_base.
template<typename I1 , typename I2 , typename E >
std::ostream & operator<< (std::ostream &ostr, const complex_relative_iterator_sequence< I1, I2, E > &p)
 Print an mln::topo::internal::complex_relative_iterator_sequence.

Variables

static const unsigned char connectivity_number_c4 [256]
static const unsigned char connectivity_number_c8 [256]

Detailed Description

Complex data.

Data is aggregated as follows in an mln::topo::complex<D>:


                   ,-----------> higher_dim_faces_set_mixin<0, D>
                   |
        faces_set_mixin<0, D> 
                 ^
                 |
                 | ,-----------> higher_dim_faces_set_mixin<1, D>
                 | | ,--------->  lower_dim_faces_set_mixin<1, D>
                 | | |           
        faces_set_mixin<1, D>
                 ^
                 |
                 |

                ...

                 ^
                 |
                 | ,-----------> higher_dim_faces_set_mixin<D - 1, D>
                 | | ,--------->  lower_dim_faces_set_mixin<D - 1, D>
                 | | |           
        faces_set_mixin<D - 1, D>
                 ^
                 |              
                 |   ,--------->  lower_dim_faces_set_mixin<D, D>
                 |   |           
        faces_set_mixin<D, D> 
                 ^
                 |
                 |
           complex_data<D> ----.  (shared data)
                               |
                               |
                ,--------------'
                |
                |
                `----<> tracked_ptr< complex_data<D> > ----<> complex<D>

        

An instance of mln::topo::internal::faces_set_mixin<N, D> stores the N-faces of a D-complex.

Classes mln::topo::internal::lower_dim_faces_set_mixin<N, D> are implementation classes factoring services related to complex data. The sets of n-faces of a complex are recursively aggregated as mixins.


Function Documentation

template<typename F , typename E >
std::ostream & mln::topo::internal::operator<< ( std::ostream &  ostr,
const complex_iterator_base< F, E > &  p 
) [inline]
template<typename I1 , typename I2 , typename E >
std::ostream & mln::topo::internal::operator<< ( std::ostream &  ostr,
const complex_relative_iterator_sequence< I1, I2, E > &  p 
) [inline]

Variable Documentation

const unsigned char mln::topo::internal::connectivity_number_c4[256] [static]
Initial value:
      {
        0,  0,  1,  1,   0,  0,  1,  1,   1,  1,  2,  1,   1,  1,  2,  1,
        1,  1,  2,  2,   1,  1,  1,  1,   2,  2,  3,  2,   2,  2,  2,  1,
        0,  0,  1,  1,   0,  0,  1,  1,   1,  1,  2,  1,   1,  1,  2,  1,
        1,  1,  2,  2,   1,  1,  1,  1,   2,  2,  3,  2,   2,  2,  2,  1,

        1,  1,  2,  2,   1,  1,  2,  2,   2,  2,  3,  2,   2,  2,  3,  2,
        2,  2,  3,  3,   2,  2,  2,  2,   3,  3,  4,  3,   3,  3,  3,  2,
        1,  1,  2,  2,   1,  1,  2,  2,   1,  1,  2,  1,   1,  1,  2,  1,
        2,  2,  3,  3,   2,  2,  2,  2,   2,  2,  3,  2,   2,  2,  2,  1,

        0,  0,  1,  1,   0,  0,  1,  1,   1,  1,  2,  1,   1,  1,  2,  1,
        1,  1,  2,  2,   1,  1,  1,  1,   2,  2,  3,  2,   2,  2,  2,  1,
        0,  0,  1,  1,   0,  0,  1,  1,   1,  1,  2,  1,   1,  1,  2,  1,
        1,  1,  2,  2,   1,  1,  1,  1,   2,  2,  3,  2,   2,  2,  2,  1,

        1,  1,  2,  2,   1,  1,  2,  2,   2,  2,  3,  2,   2,  2,  3,  2,
        1,  1,  2,  2,   1,  1,  1,  1,   2,  2,  3,  2,   2,  2,  2,  1,
        1,  1,  2,  2,   1,  1,  2,  2,   1,  1,  2,  1,   1,  1,  2,  1,
        1,  1,  2,  2,   1,  1,  1,  1,   1,  1,  2,  1,   1,  1,  1,  1
      }

Definition at line 119 of file is_simple_2d.hh.

Referenced by mln::topo::is_simple_2d_t< N >::nb_connectivity2d(), and mln::topo::is_simple_2d_t< N >::nb_connectivity2d__().

const unsigned char mln::topo::internal::connectivity_number_c8[256] [static]
Initial value:
      {
        0,  1,  1,  1,   1,  2,  1,  1,   1,  1,  1,  1,   2,  2,  1,  1,
        1,  2,  1,  1,   1,  2,  1,  1,   2,  2,  1,  1,   2,  2,  1,  1,
        1,  2,  2,  2,   2,  3,  2,  2,   1,  1,  1,  1,   2,  2,  1,  1,
        2,  3,  2,  2,   2,  3,  2,  2,   2,  2,  1,  1,   2,  2,  1,  1,

        1,  2,  2,  2,   2,  3,  2,  2,   1,  1,  1,  1,   2,  2,  1,  1,
        1,  2,  1,  1,   1,  2,  1,  1,   1,  1,  1,  1,   1,  1,  1,  1,
        1,  2,  2,  2,   2,  3,  2,  2,   1,  1,  1,  1,   2,  2,  1,  1,
        1,  2,  1,  1,   1,  2,  1,  1,   1,  1,  1,  1,   1,  1,  1,  1,

        1,  2,  2,  2,   2,  3,  2,  2,   2,  2,  2,  2,   3,  3,  2,  2,
        1,  2,  1,  1,   1,  2,  1,  1,   2,  2,  1,  1,   2,  2,  1,  1,
        2,  3,  3,  3,   3,  4,  3,  3,   2,  2,  2,  2,   3,  3,  2,  2,
        2,  3,  2,  2,   2,  3,  2,  2,   2,  2,  1,  1,   2,  2,  1,  1,

        1,  2,  2,  2,   2,  3,  2,  2,   1,  1,  1,  1,   2,  2,  1,  1,
        1,  2,  1,  1,   1,  2,  1,  1,   1,  1,  1,  1,   1,  1,  1,  1,
        1,  2,  2,  2,   2,  3,  2,  2,   1,  1,  1,  1,   2,  2,  1,  1,
        1,  2,  1,  1,   1,  2,  1,  1,   1,  1,  1,  1,   1,  1,  1,  1
      }

Definition at line 95 of file is_simple_2d.hh.

Referenced by mln::topo::is_simple_2d_t< N >::nb_connectivity2d(), and mln::topo::is_simple_2d_t< N >::nb_connectivity2d__().