aimstil  5.0.5
til::detail Namespace Reference

Multiply an image with another object. More...

Classes

class  AddNeighborIndexAttribute
 This class enhance a mesh class with a neighbor index attribute. More...
 
class  AddNormalAttribute
 This class enhance a mesh class with a normal vector attribute. More...
 
class  cyclic_iterator_base
 TODO: when implementing the operator+=, it might be that we need to split the class in different parts according to TIterator::iterator_category – unless we can simply specialize the operator+= outside the class, and use enable_if! More...
 
struct  DefaultAttributes
 A structure giving default template parameters for the Add_XXX_Attribute classes, for a given Mesh. More...
 
struct  DefaultAttributes< Mesh< TParam > >
 This specialization gives the default template arguments of the Add_XXX_Attribute classes for the library Mesh class. More...
 
class  func_iterator_impl
 
class  index_collection_pointer
 
class  index_collection_scalar
 
class  inner_basic_volumetric_iterator
 
class  inner_voliterator_compo
 
class  IterativeGradMininizationAlgorithm_basis
 
class  IterativeMininizationAlgorithm_basis
 Simple code factoring. More...
 
class  iterator_range_compo
 Composition of an iterator and a range. More...
 
class  linear_map_base
 
class  multi_array_base
 Wraps a container containing multi_array inside a multi_array, bringing D extra dimensions to the dimensions alreay spanned by the contained multi-array. More...
 
class  multi_array_base< TContainer, D, false >
 Wraps a simple, linear container into a multidimensional array of dimension D. More...
 
class  numeric_array_impl
 An implementation of a numeric array. More...
 
struct  Print
 Breadth-first tree functor to print out tree. More...
 
class  rle_array_iterator_base
 
class  sparse_vector_iterator_base
 
struct  stdit
 Technical implementation detail for stditerator. More...
 
struct  stdit< T, true >
 
struct  test_whether_impl
 
struct  test_whether_impl< TIS_A, T, true >
 

Functions

template<class TImage1 , class TImage2 >
void mul_ii (TImage1 &im1, const TImage2 &im2)
 
template<class TImage , typename TMultiplier >
void mul_iv (TImage &im, const TMultiplier &constant)
 
template<class TContainer , typename T , class TBinaryFunctor >
void loop_cv (TContainer &c, T v, TBinaryFunctor f)
 
template<typename T1 , typename T2 , class TBinaryFunctor >
void loop_vv (T1 &x, T2 &y, TBinaryFunctor f)
 
template<class TContainer1 , class TContainer2 , typename TBinaryFunctor >
void loop_cc (TContainer1 &c1, TContainer2 &res, TBinaryFunctor f)
 
template<typename T1 , typename T2 , typename T3 , class TBinaryFunctor >
void loop_vvv (T1 x, T2 y, T3 &z, TBinaryFunctor f)
 
template<class TContainer1 , class TContainer2 , class TContainerRes , class TBinaryFunctor >
void loop_ccc (const TContainer1 &c1, const TContainer2 &c2, TContainerRes &res, TBinaryFunctor f)
 
template<class TContainer , class TBinaryFunctor >
void loop_cvc (const TContainer &c1, typename boost::call_traits< typename TContainer::value_type >::param_type v, TContainer &res, TBinaryFunctor f)
 
template<typename T1 , typename T2 , typename U1 , typename U2 >
bool operator!= (const iterator_range_compo< T1, T2 > &i1, const iterator_range_compo< U1, U2 > &i2)
 
template<typename TRLEArray1 , typename TRLEArray2 , typename TIterator1 , typename TIterator2 >
bool operator== (const rle_array_iterator_base< TRLEArray1, TIterator1 > &i1, const rle_array_iterator_base< TRLEArray2, TIterator2 > &i2)
 
template<typename TRLEArray1 , typename TRLEArray2 , typename TIterator1 , typename TIterator2 >
bool operator!= (const rle_array_iterator_base< TRLEArray1, TIterator1 > &i1, const rle_array_iterator_base< TRLEArray2, TIterator2 > &i2)
 
template<typename T1 , typename P1 , typename T2 , typename P2 >
bool operator== (const sparse_vector_iterator_base< T1, P1 > &i1, const sparse_vector_iterator_base< T2, P2 > &i2)
 
template<typename T1 , typename P1 , typename T2 , typename P2 >
bool operator!= (const sparse_vector_iterator_base< T1, P1 > &i1, const sparse_vector_iterator_base< T2, P2 > &i2)
 
template<typename Expr , typename TIterator >
void loop_c (expr::TExpr< Expr > expr, TIterator start, const TIterator &end)
 
template<typename Expr , typename TContainer >
void loop_x (expr::TExpr< Expr > expr, TContainer &c)
 
template<typename Expr , typename TIterator1 , typename TIterator2 , typename TIterator3 >
void loop_xxx (expr::TExpr< Expr > expr, TIterator1 start1, const TIterator1 end1, TIterator2 start2, TIterator3 start3)
 
template<typename Expr , typename TContainer1 , typename TContainer2 , typename TContainer3 >
void loop_xxx (expr::TExpr< Expr > expr, TContainer1 &c1, TContainer2 &c2, TContainer3 &c3)
 
template<typename Expr , typename TIterator1 , typename TIterator2 >
void loop_xx (expr::TExpr< Expr > expr, TIterator1 start1, const TIterator1 end1, TIterator2 start2)
 
template<typename Expr , typename TContainer1 , typename TContainer2 >
void loop_xx (expr::TExpr< Expr > expr, TContainer1 &c1, TContainer2 &c2)
 
template<typename TTreeIterator , typename TBFFunctor >
void breadth_first (std::queue< TTreeIterator > q, const TBFFunctor &f)
 
template<typename T >
void convert_operatorEqual (const T &x, T &y)
 
template<int D, typename T1 , typename T2 >
void convert_fixedLoop (const T1 &x, T2 &y)
 
template<class TContainer1 , class TContainer2 , typename TBinaryFunctor >
void loop_cc (const TContainer1 &c1, TContainer2 &res, TBinaryFunctor f)
 
void convert_aimsmeshTomesh1 (const AimsTimeSurface< 3, Void > &meshFrom, til::Mesh1 &meshTo)
 
void convert_mesh1Toaimsmesh (const til::Mesh1 &meshFrom, AimsTimeSurface< 3, Void > &meshTo)
 
template<class TMeshFrom , class TMeshTo >
void convert_mesh_2 (const TMeshFrom &meshFrom, TMeshTo &meshTo)
 When indices of from are numbers and two are pointers. More...
 
template<class TMeshFrom , class TMeshTo >
void convert_mesh_3 (const TMeshFrom &meshFrom, TMeshTo &meshTo)
 
template<typename TMesh , typename TContainer , typename TFunctor >
void for_each_neighbors_N (const TMesh &mesh, TContainer &c, TFunctor f)
 Apply a functor for each pair (vertex, neighbor_of_vertex), given a mesh and another container. More...
 
template<typename TMesh , typename TContainer , typename TFunctor >
void for_each_neighbors_V (const TMesh &mesh, TContainer &c, TFunctor f)
 Apply a functor for each pair (vertex, neighbor_of_vertex), given a mesh and another container. More...
 
template<typename TMesh , typename TContainer1 , typename TContainer2 , typename TFunctor >
void for_each_neighbors_NN (const TMesh &mesh, TContainer1 &c1, TContainer2 &c2, TFunctor f)
 Apply a functor for each pair (vertex, neighbor_of_vertex), given a mesh and two extra containers. More...
 
template<typename TMesh , typename TContainer1 , typename TContainer2 , typename TFunctor >
void for_each_neighbors_NV (const TMesh &mesh, TContainer1 &c1, TContainer2 &c2, TFunctor f)
 Apply a functor for each pair (vertex, neighbor_of_vertex), given a mesh and two extra containers. More...
 
template<typename TContainer1 , typename TContainer2 >
boost::disable_if_c< is_container< typename TContainer1::value_type >::value &&is_container< typename TContainer2::value_type >::value >::type _allocate_sameSize (const TContainer1 &c1, TContainer2 &c2)
 
template<typename TContainer1 , typename TContainer2 >
boost::enable_if_c< is_container< typename TContainer1::value_type >::value &&is_container< typename TContainer2::value_type >::value >::type _allocate_sameSize (const TContainer1 &c1, TContainer2 &c2)
 

Detailed Description

Multiply an image with another object.

The 'detail' namespace contains technical details of the library, which a library user should not need to use nor to know.

Note that the type of the multiplier is not necessary of the type of the image. This allows e.g. to multiply an image of vectors with either another vector or a scalar or a matrix. Whichever works with the operator*= on the type of pixels of the image. On the other hand, it allows stupid behavior like multiplying an image of doubles with an integer without casting first the integer.

Function Documentation

◆ _allocate_sameSize() [1/2]

template<typename TContainer1 , typename TContainer2 >
boost::disable_if_c< is_container<typename TContainer1::value_type>::value && is_container<typename TContainer2::value_type>::value >::type til::detail::_allocate_sameSize ( const TContainer1 &  c1,
TContainer2 &  c2 
)
Parameters
c1The model
c2The container to be allocated

Definition at line 154 of file miscUtils.h.

References _allocate_sameSize(), and til::size().

◆ _allocate_sameSize() [2/2]

template<typename TContainer1 , typename TContainer2 >
boost::enable_if_c< is_container<typename TContainer1::value_type>::value && is_container<typename TContainer2::value_type>::value >::type til::detail::_allocate_sameSize ( const TContainer1 &  c1,
TContainer2 &  c2 
)
Parameters
c1The model
c2The container to be allocated

Definition at line 171 of file miscUtils.h.

References til::allocate_sameSize(), and til::size().

Referenced by _allocate_sameSize(), and til::norm2().

◆ breadth_first()

template<typename TTreeIterator , typename TBFFunctor >
void til::detail::breadth_first ( std::queue< TTreeIterator >  q,
const TBFFunctor &  f 
)

Definition at line 431 of file binary_tree.h.

References til::breadth_first().

Referenced by til::breadth_first().

◆ convert_aimsmeshTomesh1()

void til::detail::convert_aimsmeshTomesh1 ( const AimsTimeSurface< 3, Void > &  meshFrom,
til::Mesh1 meshTo 
)
inline

◆ convert_fixedLoop()

template<int D, typename T1 , typename T2 >
void til::detail::convert_fixedLoop ( const T1 &  x,
T2 &  y 
)
inline

Definition at line 132 of file convert.h.

References til::convert().

◆ convert_mesh1Toaimsmesh()

void til::detail::convert_mesh1Toaimsmesh ( const til::Mesh1 meshFrom,
AimsTimeSurface< 3, Void > &  meshTo 
)
inline

◆ convert_mesh_2()

template<class TMeshFrom , class TMeshTo >
void til::detail::convert_mesh_2 ( const TMeshFrom &  meshFrom,
TMeshTo &  meshTo 
)
inline

When indices of from are numbers and two are pointers.

Definition at line 134 of file meshUtils.h.

References til::expr::_1, til::expr::_2, til::expr::castTo(), til::getFaceIndices(), til::getVertices(), loop_xx(), and til::size().

Referenced by til::functor::convertAimsMesh().

◆ convert_mesh_3()

template<class TMeshFrom , class TMeshTo >
void til::detail::convert_mesh_3 ( const TMeshFrom &  meshFrom,
TMeshTo &  meshTo 
)
inline

◆ convert_operatorEqual()

template<typename T >
void til::detail::convert_operatorEqual ( const T &  x,
T &  y 
)
inline

Definition at line 111 of file convert.h.

Referenced by til::convert().

◆ for_each_neighbors_N()

template<typename TMesh , typename TContainer , typename TFunctor >
void til::detail::for_each_neighbors_N ( const TMesh &  mesh,
TContainer &  c,
TFunctor  f 
)
inline

Apply a functor for each pair (vertex, neighbor_of_vertex), given a mesh and another container.

The functor should expect calls of the form f(Vertex, NeighboringVertex, ExtraVariable).

Definition at line 518 of file meshUtils.h.

References til::getNeighborIndices(), til::getVertexNeighbor(), til::getVertices(), and til::size().

Referenced by til::for_each_neighbors().

◆ for_each_neighbors_NN()

template<typename TMesh , typename TContainer1 , typename TContainer2 , typename TFunctor >
void til::detail::for_each_neighbors_NN ( const TMesh &  mesh,
TContainer1 &  c1,
TContainer2 &  c2,
TFunctor  f 
)
inline

Apply a functor for each pair (vertex, neighbor_of_vertex), given a mesh and two extra containers.

The functor should expect calls of the form f(Vertex, NeighboringVertex, ExtraVariable1, ExtraVariable2). Here, both containers follow the structure of NeighborIndices (i.e. a container of container).

Definition at line 613 of file meshUtils.h.

References til::getNeighborIndices(), til::getVertexNeighbor(), til::getVertices(), and til::size().

Referenced by til::for_each_neighbors().

◆ for_each_neighbors_NV()

template<typename TMesh , typename TContainer1 , typename TContainer2 , typename TFunctor >
void til::detail::for_each_neighbors_NV ( const TMesh &  mesh,
TContainer1 &  c1,
TContainer2 &  c2,
TFunctor  f 
)
inline

Apply a functor for each pair (vertex, neighbor_of_vertex), given a mesh and two extra containers.

Here, the first container should follow NeighborIndex structure (container of container) and the second the vertex structure (container)

Definition at line 655 of file meshUtils.h.

References til::getNeighborIndices(), til::getVertexNeighbor(), til::getVertices(), and til::size().

Referenced by til::for_each_neighbors().

◆ for_each_neighbors_V()

template<typename TMesh , typename TContainer , typename TFunctor >
void til::detail::for_each_neighbors_V ( const TMesh &  mesh,
TContainer &  c,
TFunctor  f 
)
inline

Apply a functor for each pair (vertex, neighbor_of_vertex), given a mesh and another container.

The functor should expect calls of the form f(Vertex, NeighboringVertex, ExtraVariable).

Definition at line 551 of file meshUtils.h.

References til::getNeighborIndices(), til::getVertexNeighbor(), til::getVertices(), and til::size().

Referenced by til::for_each_neighbors().

◆ loop_c()

template<typename Expr , typename TIterator >
void til::detail::loop_c ( expr::TExpr< Expr >  expr,
TIterator  start,
const TIterator &  end 
)

Definition at line 392 of file TExpr.h.

Referenced by loop_x().

◆ loop_cc() [1/2]

template<class TContainer1 , class TContainer2 , typename TBinaryFunctor >
void til::detail::loop_cc ( TContainer1 &  c1,
TContainer2 &  res,
TBinaryFunctor  f 
)

Definition at line 62 of file loop.h.

References til::loop(), and til::size().

Referenced by til::loop().

◆ loop_cc() [2/2]

template<class TContainer1 , class TContainer2 , typename TBinaryFunctor >
void til::detail::loop_cc ( const TContainer1 &  c1,
TContainer2 &  res,
TBinaryFunctor  f 
)

Definition at line 63 of file globalTraits.h.

References til::loop(), and til::size().

◆ loop_ccc()

template<class TContainer1 , class TContainer2 , class TContainerRes , class TBinaryFunctor >
void til::detail::loop_ccc ( const TContainer1 &  c1,
const TContainer2 &  c2,
TContainerRes &  res,
TBinaryFunctor  f 
)

Definition at line 112 of file loop.h.

References til::loop(), and til::size().

Referenced by til::loop().

◆ loop_cv()

template<class TContainer , typename T , class TBinaryFunctor >
void til::detail::loop_cv ( TContainer &  c,
v,
TBinaryFunctor  f 
)

Definition at line 17 of file loop.h.

References til::loop().

Referenced by til::loop().

◆ loop_cvc()

template<class TContainer , class TBinaryFunctor >
void til::detail::loop_cvc ( const TContainer &  c1,
typename boost::call_traits< typename TContainer::value_type >::param_type  v,
TContainer &  res,
TBinaryFunctor  f 
)

Definition at line 142 of file loop.h.

References til::loop(), and til::size().

Referenced by til::loop().

◆ loop_vv()

template<typename T1 , typename T2 , class TBinaryFunctor >
void til::detail::loop_vv ( T1 &  x,
T2 &  y,
TBinaryFunctor  f 
)
inline

Definition at line 41 of file loop.h.

Referenced by til::loop().

◆ loop_vvv()

template<typename T1 , typename T2 , typename T3 , class TBinaryFunctor >
void til::detail::loop_vvv ( T1  x,
T2  y,
T3 &  z,
TBinaryFunctor  f 
)
inline

Definition at line 90 of file loop.h.

Referenced by til::loop().

◆ loop_x()

template<typename Expr , typename TContainer >
void til::detail::loop_x ( expr::TExpr< Expr >  expr,
TContainer &  c 
)

Definition at line 402 of file TExpr.h.

References loop_c().

◆ loop_xx() [1/2]

template<typename Expr , typename TIterator1 , typename TIterator2 >
void til::detail::loop_xx ( expr::TExpr< Expr >  expr,
TIterator1  start1,
const TIterator1  end1,
TIterator2  start2 
)

◆ loop_xx() [2/2]

template<typename Expr , typename TContainer1 , typename TContainer2 >
void til::detail::loop_xx ( expr::TExpr< Expr >  expr,
TContainer1 &  c1,
TContainer2 &  c2 
)

Definition at line 437 of file TExpr.h.

◆ loop_xxx() [1/2]

template<typename Expr , typename TIterator1 , typename TIterator2 , typename TIterator3 >
void til::detail::loop_xxx ( expr::TExpr< Expr >  expr,
TIterator1  start1,
const TIterator1  end1,
TIterator2  start2,
TIterator3  start3 
)

◆ loop_xxx() [2/2]

template<typename Expr , typename TContainer1 , typename TContainer2 , typename TContainer3 >
void til::detail::loop_xxx ( expr::TExpr< Expr >  expr,
TContainer1 &  c1,
TContainer2 &  c2,
TContainer3 &  c3 
)

Definition at line 420 of file TExpr.h.

◆ mul_ii()

template<class TImage1 , class TImage2 >
void til::detail::mul_ii ( TImage1 &  im1,
const TImage2 &  im2 
)

Definition at line 91 of file imageArith.h.

References til::mul(), and til::similarityCheck().

Referenced by til::mul().

◆ mul_iv()

template<class TImage , typename TMultiplier >
void til::detail::mul_iv ( TImage &  im,
const TMultiplier &  constant 
)

Definition at line 128 of file imageArith.h.

References til::mul().

Referenced by til::mul().

◆ operator!=() [1/3]

template<typename TRLEArray1 , typename TRLEArray2 , typename TIterator1 , typename TIterator2 >
bool til::detail::operator!= ( const rle_array_iterator_base< TRLEArray1, TIterator1 > &  i1,
const rle_array_iterator_base< TRLEArray2, TIterator2 > &  i2 
)
inline

Definition at line 276 of file rle_array.h.

◆ operator!=() [2/3]

template<typename T1 , typename T2 , typename U1 , typename U2 >
bool til::detail::operator!= ( const iterator_range_compo< T1, T2 > &  i1,
const iterator_range_compo< U1, U2 > &  i2 
)

◆ operator!=() [3/3]

template<typename T1 , typename P1 , typename T2 , typename P2 >
bool til::detail::operator!= ( const sparse_vector_iterator_base< T1, P1 > &  i1,
const sparse_vector_iterator_base< T2, P2 > &  i2 
)
inline

◆ operator==() [1/2]

template<typename TRLEArray1 , typename TRLEArray2 , typename TIterator1 , typename TIterator2 >
bool til::detail::operator== ( const rle_array_iterator_base< TRLEArray1, TIterator1 > &  i1,
const rle_array_iterator_base< TRLEArray2, TIterator2 > &  i2 
)
inline

◆ operator==() [2/2]

template<typename T1 , typename P1 , typename T2 , typename P2 >
bool til::detail::operator== ( const sparse_vector_iterator_base< T1, P1 > &  i1,
const sparse_vector_iterator_base< T2, P2 > &  i2 
)
inline