Public Types | Public Member Functions | Protected Attributes | Private Types

mln::vertex_image< P, V, G > Class Template Reference
[Basic types]

Image based on graph vertices. More...

#include <vertex_image.hh>

Inheritance diagram for mln::vertex_image< P, V, G >:
Inheritance graph

List of all members.

Public Types

typedef p_vertices< G,
internal::vfsite_selector< P,
G >::site_function_t >
::bkd_piter 
bkd_piter
 Backward Site_Iterator associated type.
typedef Image< void > category
typedef p_vertices< G,
internal::vfsite_selector< P,
G >::site_function_t
domain_t
 Site_Set associated type.
typedef vertex_image< P, V, G > exact_t
typedef site_function_t::result function_result_t
typedef fun::i2v::array< V > function_t
 Function associated type.
typedef p_vertices< G,
internal::vfsite_selector< P,
G >::site_function_t >
::fwd_piter 
fwd_piter
 Forward Site_Iterator associated type.
typedef G graph_t
 The type of the underlying graph.
typedef super_::lvalue lvalue
typedef vertex_nbh_t nbh_t
 Neighborhood type.
typedef fwd_piter piter
 Site_Iterator associated type; default definition is fwd_piter.
typedef super_::psite psite
 Point_Site associated type.
typedef super_::rvalue rvalue
 Return type of read-only access.
typedef p_vertices< G,
site_function_t
S
typedef p_vertices< G,
internal::vfsite_selector< P,
G >::site_function_t >::site 
site
 Site associated type.
typedef
internal::vfsite_selector< P,
G >::site_function_t 
site_function_t
 Function mapping graph elements to sites.
typedef vertex_image
< tag::psite_< P >
, tag::value_< V >
, tag::graph_< G > > 
skeleton
 Skeleton type.
typedef mln::value::set
< fun::i2v::array< V >::result
t_eligible_values_set
 Eligible-value-set associated type.
typedef mln::value::set
< typename
mln::value::super_value
< fun::i2v::array< V >::result >
::ret
t_values_space
 Value space associated type.
typedef fun::i2v::array< V >
::result 
value
 Value associated type.
typedef graph_elt_neighborhood
< G, S
vertex_nbh_t
 Vertex Neighborhood type.
typedef graph_elt_window< G, Svertex_win_t
 Vertex Window type.
typedef vertex_win_t win_t
 Window type.

Public Member Functions

void destroy ()
 Detach data from an image (free it if nobody else hold it).
const p_vertices< G,
internal::vfsite_selector< P,
G >::site_function_t > & 
domain () const
 Give the definition domain.
fun::i2v::array< V > function () const
 Return the function which computes a site value.
bool has (const psite &p) const
 Test if p belongs to the image domain.
const util::tracked_ptr
< internal::data< vertex_image
< P, V, G > > > & 
hook_data_ () const
 Hook to the image data.
const void * id_ () const
 Give an identifier of this image.
unsigned index_of_point (const P &p) const
 Give the offset of the site p.
void init_ (const Function_v2v< fun::i2v::array< V > > &f, const Site_Set< p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > > &ps)
 Initialize an empty image.
bool is_valid () const
 Test if this image has been initialized; default impl.
typedef mlc_if (is_mutable, mutable_result, typename fun::i2v::array< V >::result) lvalue
 Return type of read-write access.
std::size_t nsites () const
 Give the number of sites of the image domain.
rvalue operator() (const typename p_vertices< G, internal::vfsite_selector< P, G >::site_function_t >::psite &p) const
 Read-only access of pixel value at point site p.
lvalue operator() (const psite &p)
rvalue operator() (const psite &p) const
lvalue operator() (const typename p_vertices< G, internal::vfsite_selector< P, G >::site_function_t >::psite &p)
 Read-write access returns either a temporary value (copy) or a reference in the case of a mutable function (container).
const t_eligible_values_setvalues_eligible () const
const t_values_spacevalues_space () const
 Return the value space of the image.

 vertex_image ()
 Constructors.
 vertex_image (const p_vertices< G, site_function_t > &pv)
 vertex_image (const p_vertices< G, site_function_t > &pv, const Function_v2v< fun::i2v::array< V > > &vertex_values)
template<typename FV >
 vertex_image (const p_vertices< G, site_function_t > &pv, const Function_v2v< FV > &vertex_values)

rvalue operator() (unsigned v_id) const
 Value accessors/operators overloads.
lvalue operator() (unsigned v_id)

Protected Attributes

util::tracked_ptr
< internal::data< vertex_image
< P, V, G > > > 
data_

Private Types

typedef
pw::internal::image_base
< fun::i2v::array< V >
, p_vertices< G, typename
internal::vfsite_selector< P,
G >::site_function_t >
, vertex_image< P, V, G > > 
super_

Detailed Description

template<typename P, typename V, typename G = util::graph>
class mln::vertex_image< P, V, G >

Image based on graph vertices.

Definition at line 126 of file core/image/vertex_image.hh.


Member Typedef Documentation

Backward Site_Iterator associated type.

Definition at line 118 of file core/internal/image_base.hh.

typedef Image<void> mln::Image< vertex_image< P, V, G > >::category [inherited]

Reimplemented from mln::Object< vertex_image< P, V, G > >.

Definition at line 75 of file core/concept/image.hh.

Site_Set associated type.

Definition at line 105 of file core/internal/image_base.hh.

typedef vertex_image< P, V, G > mln::Object< vertex_image< P, V, G > >::exact_t [inherited]

Definition at line 173 of file object.hh.

template<typename P, typename V, typename G = util::graph>
typedef site_function_t ::result mln::vertex_image< P, V, G >::function_result_t

Definition at line 146 of file core/image/vertex_image.hh.

Function associated type.

Definition at line 122 of file pw/internal/image_base.hh.

Forward Site_Iterator associated type.

Definition at line 115 of file core/internal/image_base.hh.

template<typename P, typename V, typename G = util::graph>
typedef G mln::vertex_image< P, V, G >::graph_t

The type of the underlying graph.

Definition at line 141 of file core/image/vertex_image.hh.

template<typename P, typename V, typename G = util::graph>
typedef super_::lvalue mln::vertex_image< P, V, G >::lvalue

Definition at line 138 of file core/image/vertex_image.hh.

template<typename P, typename V, typename G = util::graph>
typedef vertex_nbh_t mln::vertex_image< P, V, G >::nbh_t

Neighborhood type.

Definition at line 165 of file core/image/vertex_image.hh.

Site_Iterator associated type; default definition is fwd_piter.

Definition at line 123 of file core/internal/image_base.hh.

template<typename P, typename V, typename G = util::graph>
typedef super_::psite mln::vertex_image< P, V, G >::psite
template<typename P, typename V, typename G = util::graph>
typedef super_::rvalue mln::vertex_image< P, V, G >::rvalue
template<typename P, typename V, typename G = util::graph>
typedef p_vertices<G,site_function_t> mln::vertex_image< P, V, G >::S

Definition at line 154 of file core/image/vertex_image.hh.

Site associated type.

Definition at line 111 of file core/internal/image_base.hh.

template<typename P, typename V, typename G = util::graph>
typedef internal::vfsite_selector<P,G>::site_function_t mln::vertex_image< P, V, G >::site_function_t

Function mapping graph elements to sites.

Definition at line 145 of file core/image/vertex_image.hh.

template<typename P, typename V, typename G = util::graph>
typedef vertex_image< tag::psite_<P>, tag::value_<V>, tag::graph_<G> > mln::vertex_image< P, V, G >::skeleton

Skeleton type.

Definition at line 152 of file core/image/vertex_image.hh.

template<typename P, typename V, typename G = util::graph>
typedef pw::internal::image_base<fun::i2v::array<V>, p_vertices<G, typename internal::vfsite_selector<P,G>::site_function_t >, vertex_image<P,V,G> > mln::vertex_image< P, V, G >::super_ [private]

Definition at line 133 of file core/image/vertex_image.hh.

Eligible-value-set associated type.

Definition at line 91 of file core/internal/image_base.hh.

Value space associated type.

Definition at line 98 of file core/internal/image_base.hh.

template<typename P, typename V, typename G = util::graph>
typedef graph_elt_neighborhood<G,S> mln::vertex_image< P, V, G >::vertex_nbh_t

Vertex Neighborhood type.

Definition at line 160 of file core/image/vertex_image.hh.

template<typename P, typename V, typename G = util::graph>
typedef graph_elt_window<G,S> mln::vertex_image< P, V, G >::vertex_win_t

Vertex Window type.

Definition at line 157 of file core/image/vertex_image.hh.

template<typename P, typename V, typename G = util::graph>
typedef vertex_win_t mln::vertex_image< P, V, G >::win_t

Window type.

Definition at line 163 of file core/image/vertex_image.hh.


Constructor & Destructor Documentation

template<typename P , typename V , typename G >
mln::vertex_image< P, V, G >::vertex_image (  )  [inline]

Constructors.

Definition at line 247 of file core/image/vertex_image.hh.

template<typename P , typename V , typename G>
mln::vertex_image< P, V, G >::vertex_image ( const p_vertices< G, site_function_t > &  pv  )  [inline]

Definition at line 253 of file core/image/vertex_image.hh.

template<typename P , typename V, typename G>
mln::vertex_image< P, V, G >::vertex_image ( const p_vertices< G, site_function_t > &  pv,
const Function_v2v< fun::i2v::array< V > > &  vertex_values 
) [inline]

Definition at line 260 of file core/image/vertex_image.hh.

template<typename P , typename V , typename G>
template<typename FV >
mln::vertex_image< P, V, G >::vertex_image ( const p_vertices< G, site_function_t > &  pv,
const Function_v2v< FV > &  vertex_values 
) [inline]

Definition at line 269 of file core/image/vertex_image.hh.


Member Function Documentation

void mln::internal::image_base< fun::i2v::array< V >::result , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::destroy (  )  [inherited]

Detach data from an image (free it if nobody else hold it).

const p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > & mln::pw::internal::image_base< fun::i2v::array< V > , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::domain (  )  const [inherited]

Give the definition domain.

Referenced by mln::make::edge_image().

fun::i2v::array< V > mln::pw::internal::image_base< fun::i2v::array< V > , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::function (  )  const [inherited]

Return the function which computes a site value.

bool mln::internal::image_base< fun::i2v::array< V >::result , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::has ( const psite p  )  const [inherited]

Test if p belongs to the image domain.

const util::tracked_ptr< internal::data<vertex_image< P, V, G > > >& mln::internal::image_base< fun::i2v::array< V >::result , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::hook_data_ (  )  const [inherited]

Hook to the image data.

const void* mln::internal::image_base< fun::i2v::array< V >::result , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::id_ (  )  const [inherited]

Give an identifier of this image.

When several image variables designate the same image, they share the same identifier.

unsigned mln::internal::check::image_fastest_< vertex_image< P, V, G > , mln::metal::equal< mln_trait_image_speed(vertex_image< P, V, G >), trait::image::speed::fastest >::eval >::index_of_point ( const P &  p  )  const [inherited]

Give the offset of the site p.

Parameters:
[in] p A site.
Warning:
This method is final.
Precondition:
The image has to be initialized and to own the point p.
Postcondition:
p == point_at_index(result)
void mln::pw::internal::image_base< fun::i2v::array< V > , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::init_ ( const Function_v2v< fun::i2v::array< V > > &  f,
const Site_Set< p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > > &  ps 
) [inherited]

Initialize an empty image.

Referenced by mln::init_().

bool mln::internal::image_base< fun::i2v::array< V >::result , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::is_valid (  )  const [inherited]

Test if this image has been initialized; default impl.

Referenced by mln::make::edge_image().

typedef mln::pw::internal::image_base< fun::i2v::array< V > , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::mlc_if ( is_mutable  ,
mutable_result  ,
typename fun::i2v::array< V > ::result   
) [inherited]

Return type of read-write access.

std::size_t mln::internal::image_base< fun::i2v::array< V >::result , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::nsites (  )  const [inherited]

Give the number of sites of the image domain.

template<typename P, typename V, typename G = util::graph>
lvalue mln::vertex_image< P, V, G >::operator() ( const psite p  ) 
lvalue mln::pw::internal::image_base< fun::i2v::array< V > , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::operator() ( const typename p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > ::psite p  )  [inherited]

Read-write access returns either a temporary value (copy) or a reference in the case of a mutable function (container).

template<typename P, typename V, typename G = util::graph>
rvalue mln::vertex_image< P, V, G >::operator() ( const psite p  )  const
rvalue mln::pw::internal::image_base< fun::i2v::array< V > , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::operator() ( const typename p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > ::psite p  )  const [inherited]

Read-only access of pixel value at point site p.

template<typename P , typename V , typename G >
vertex_image< P, V, G >::lvalue mln::vertex_image< P, V, G >::operator() ( unsigned  v_id  ) 
template<typename P , typename V , typename G >
vertex_image< P, V, G >::rvalue mln::vertex_image< P, V, G >::operator() ( unsigned  v_id  )  const
const t_eligible_values_set& mln::internal::image_base< fun::i2v::array< V >::result , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::values_eligible (  )  const [inherited]
const t_values_space& mln::internal::image_base< fun::i2v::array< V >::result , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::values_space (  )  const [inherited]

Return the value space of the image.


Member Data Documentation

util::tracked_ptr< internal::data<vertex_image< P, V, G > > > mln::internal::image_base< fun::i2v::array< V >::result , p_vertices< G, internal::vfsite_selector< P, G >::site_function_t > , vertex_image< P, V, G > >::data_ [protected, inherited]