#include <tarjan.hh>
Inheritance diagram for oln::topo::tarjan::abstract::tarjan< Exact >:
Public Types | |
typedef oln::topo::tarjan::tarjan_traits< Exact >::input_type | input_type |
Type of input image. | |
typedef oln::topo::tarjan::tarjan_traits< Exact >::output_type | image_out_type |
Type of output image. | |
typedef mlc::exact< image_out_type >::ret::value_type | comp_type |
Type of components. | |
typedef mlc::exact< input_type >::ret::point_type | point_type |
Point type of image to process. | |
Public Member Functions | |
template<class N> | |
image_out_type | get_compute (const oln::abstract::neighborhood< N > &Ng) |
Run the algorithm. | |
comp_type | ncomps () const |
Give the number of component found. | |
Protected Member Functions | |
std::vector< point_type > | get_processing_order () |
Abstract method to get the processing order. | |
void | mark_set (const point_type &x) |
Mark a point as a new component. | |
void | uni (const point_type &n, const point_type &p) |
Perform an union between two components. | |
bool | is_proc (const point_type &p) const |
tell if a point has already been processed. | |
tarjan () | |
Make the class abstract. |
I | Type of image to process. | |
D | Type of data of the wanted image. | |
Exact | Exact type of the class. |
Definition at line 63 of file tarjan.hh.
image_out_type oln::topo::tarjan::abstract::tarjan< Exact >::get_compute | ( | const oln::abstract::neighborhood< N > & | Ng | ) | [inline] |
Run the algorithm.
Definition at line 79 of file tarjan.hh.
00080 { 00081 mlc_dispatch(get_compute)(Ng); 00082 }
comp_type oln::topo::tarjan::abstract::tarjan< Exact >::ncomps | ( | ) | const [inline] |
Give the number of component found.
Definition at line 90 of file tarjan.hh.
Referenced by oln::topo::tarjan::abstract::tarjan< mlc::exact_vt< oln::topo::tarjan::abstract::tarjan_with_attr< Exact >, Exact >::ret >::ncomps().
00091 { 00092 mlc_dispatch(ncomps)(); 00093 }
std::vector<point_type> oln::topo::tarjan::abstract::tarjan< Exact >::get_processing_order | ( | ) | [inline, protected] |
Abstract method to get the processing order.
Definition at line 103 of file tarjan.hh.
00104 { 00105 mlc_dispatch(get_processing_order)(); 00106 }
void oln::topo::tarjan::abstract::tarjan< Exact >::mark_set | ( | const point_type & | x | ) | [inline, protected] |
Mark a point as a new component.
Definition at line 115 of file tarjan.hh.
Referenced by oln::topo::tarjan::abstract::tarjan_with_attr< mlc::exact_vt< oln::topo::tarjan::flat_zone< T, DestType, A, Exact >, Exact >::ret >::get_compute_impl(), and oln::topo::tarjan::abstract::tarjan< mlc::exact_vt< oln::topo::tarjan::abstract::tarjan_with_attr< Exact >, Exact >::ret >::mark_set().
void oln::topo::tarjan::abstract::tarjan< Exact >::uni | ( | const point_type & | n, | |
const point_type & | p | |||
) | [inline, protected] |
Perform an union between two components.
Definition at line 127 of file tarjan.hh.
Referenced by oln::topo::tarjan::abstract::tarjan_with_attr< mlc::exact_vt< oln::topo::tarjan::flat_zone< T, DestType, A, Exact >, Exact >::ret >::get_compute_impl(), and oln::topo::tarjan::abstract::tarjan< mlc::exact_vt< oln::topo::tarjan::abstract::tarjan_with_attr< Exact >, Exact >::ret >::uni().
00128 { 00129 mlc_dispatch(uni)(n, p); 00130 }
bool oln::topo::tarjan::abstract::tarjan< Exact >::is_proc | ( | const point_type & | p | ) | const [inline, protected] |
tell if a point has already been processed.
Definition at line 139 of file tarjan.hh.
Referenced by oln::topo::tarjan::abstract::tarjan_with_attr< mlc::exact_vt< oln::topo::tarjan::flat_zone< T, DestType, A, Exact >, Exact >::ret >::get_compute_impl(), and oln::topo::tarjan::abstract::tarjan< mlc::exact_vt< oln::topo::tarjan::abstract::tarjan_with_attr< Exact >, Exact >::ret >::is_proc().
00140 { 00141 mlc_dispatch(is_proc)(p); 00142 };