48 template <
typename TSegmentComputer>
58 template <
typename TSegmentComputer>
64 if ( (it != itb)&&(it != ite) ) {
67 tmpSegmentComputer.init(previousIt);
68 return tmpSegmentComputer.extendForward();
76 template <
typename TSegmentComputer>
84 return this->doesIntersectNext(it);
88 template <
typename TSegmentComputer>
96 tmpSegmentComputer.init(previousIt);
97 return tmpSegmentComputer.extendForward();
101 template <
typename TSegmentComputer>
106 if ( (myS->myMode ==
"First") || (myS->myMode ==
"First++") ) {
110 if ( (myS->myMode ==
"Last") || (myS->myMode ==
"Last++") ) {
119 template <
typename TSegmentComputer>
129 if ((myS->myMode ==
"First")||(myS->myMode ==
"First++")) {
133 if ((myS->myMode ==
"Last")||(myS->myMode ==
"Last++")) {
144 if ((myS->myMode ==
"First")||(myS->myMode ==
"First++")) {
149 if ((myS->myMode ==
"Last")||(myS->myMode ==
"Last++")) {
158 if ((myS->myMode ==
"MostCentered++") || (myS->myMode ==
"First++") || (myS->myMode ==
"Last++"))
170 template <
typename TSegmentComputer>
176 if ( myFlagIsLast ) {
178 myFlagIsValid =
false;
182 myFlagIntersectPrevious = myFlagIntersectNext;
189 myFlagIntersectNext = doesIntersectNext(
mySegmentComputer.end(), myS->myBegin, myS->myEnd );
207 template <
typename TSegmentComputer>
211 const TSegmentComputer& aSegmentComputer,
212 const bool& aIsValid )
215 myFlagIsValid( aIsValid ),
216 myFlagIntersectNext(
false ),
217 myFlagIntersectPrevious(
false ),
218 myFlagIsLast(
false )
222 if ( isNotEmpty<ConstIterator>(
myS->myStart,
myS->myStop) )
250 template <
typename TSegmentComputer>
266 template <
typename TSegmentComputer>
272 if (
this != &other )
287 template <
typename TSegmentComputer>
298 template <
typename TSegmentComputer>
300 const TSegmentComputer&
307 template <
typename TSegmentComputer>
309 const TSegmentComputer*
316 template <
typename TSegmentComputer>
325 template <
typename TSegmentComputer>
335 template <
typename TSegmentComputer>
338 DGtal::SaturatedSegmentation<TSegmentComputer>::SegmentComputerIterator::operator==
350 template <
typename TSegmentComputer>
353 DGtal::SaturatedSegmentation<TSegmentComputer>::SegmentComputerIterator::operator!=
356 return !(*
this == other);
363 template <
typename TSegmentComputer>
368 return myFlagIntersectNext;
371 template <
typename TSegmentComputer>
376 return myFlagIntersectPrevious;
381 template <
typename TSegmentComputer>
389 template <
typename TSegmentComputer>
407 template <
typename TSegmentComputer>
420 template <
typename TSegmentComputer>
431 template <
typename TSegmentComputer>
435 (
const std::string& aMode)
437 if ( (aMode ==
"First") || (aMode ==
"Last") || (aMode ==
"MostCentered")
438 || (aMode ==
"First++") || (aMode ==
"Last++") || (aMode ==
"MostCentered++") )
442 std::cerr <<
"[DGtal::SaturatedSegmentation<TSegmentComputer>::setMode(const std::string& aMode)]"
443 <<
" ERROR. Unknown mode." << std::endl;
449 template <
typename TSegmentComputer>
456 template <
typename TSegmentComputer>
465 template <
typename TSegmentComputer>
475 template <
typename TSegmentComputer>
480 out <<
"[SaturatedSegmentation]";
484 template <
typename TSegmentComputer>
497 template <
typename TSegmentComputer>
503 object.selfDisplay( out );