36 #if defined(CombinatorialDSS_RECURSES)
37 #error Recursive header files inclusion detected in CombinatorialDSS.h
38 #else // defined(CombinatorialDSS_RECURSES)
40 #define CombinatorialDSS_RECURSES
42 #if !defined CombinatorialDSS_h
44 #define CombinatorialDSS_h
49 #include "DGtal/base/Common.h"
50 #include "DGtal/geometry/curves/FreemanChain.h"
51 #include "DGtal/base/OrderedAlphabet.h"
86 template <
typename TConstIterator,
typename TInteger>
107 typedef typename iterator_traits<ConstIterator>::value_type
Code;
122 template < class TIterator, class iterator_type = typename iterator_traits<TIterator>::iterator_category >
128 void init(
const TIterator & it )
157 template <
class TIterator >
164 void init(
const TIterator & it )
172 return ( n >= 0 ) ? myPosCodes[ n ] : myNegCodes[ 1-n ];
180 unsigned int i = 1-n;
181 while ( i >= myNegCodes.size() )
184 myNegCodes.push_back( *myFirst );
191 while ( i >= myPosCodes.size() )
193 myPosCodes.push_back( *myLast );
211 template <
class TIterator>
218 void init (
const TIterator & it )
401 void init(
const ConstIterator & it,
411 void init(
const ConstPointIterator & i);
431 void init(
const typename FreemanChainCode::ConstIterator & it);
712 ConstPointIterator
pointEnd()
const;
717 ConstIterator
begin()
const;
722 ConstIterator
end()
const;
942 Integer x = ( c ==
'0' ) ? 1 : ( ( c ==
'2' ) ? -1 : 0 ) ;
943 Integer y = ( c ==
'1' ) ? 1 : ( ( c ==
'3' ) ? -1 : 0 ) ;
958 template <
typename T1,
typename T2>
960 operator<< ( std::ostream & out, const CombinatorialDSS<T1,T2> & object );
969 #include "DGtal/geometry/curves/CombinatorialDSS.ih"
973 #endif // !defined CombinatorialDSS_h
975 #undef CombinatorialDSS_RECURSES
976 #endif // else defined(CombinatorialDSS_RECURSES)