25 #ifndef __TERRALIB_RP_INTERNAL_SEGMENTERREGIONGROWINGSEGMENT_H 
   26 #define __TERRALIB_RP_INTERNAL_SEGMENTERREGIONGROWINGSEGMENT_H 
   40     template< 
typename FeatureDataTypeT >
 
  153     template< 
typename FeatureDataTypeT > 
 
  154     SegmenterRegionGrowingSegment< FeatureDataTypeT >&
 
  167       free( m_neighborSegments );
 
  180         m_neighborSegments = 0;
 
  181         m_neighborSegmentsSize = 0;
 
  194     template< 
typename FeatureDataTypeT >
 
  200         unsigned int idx = 0;
 
  202         for( idx = 0 ; idx < m_neighborSegmentsSize ; ++idx )
 
  204           if( m_neighborSegments[ idx ] == nSegPtr )
 
  210         for( idx = 0 ; idx < m_neighborSegmentsSize ; ++idx )
 
  212           if( m_neighborSegments[ idx ] == 0 )
 
  214             m_neighborSegments[ idx ] = nSegPtr;
 
  220           m_neighborSegments, ( m_neighborSegmentsSize + 1 ) * 
sizeof( 
 
  223         m_neighborSegments[ m_neighborSegmentsSize ] = nSegPtr;
 
  225         m_neighborSegmentsSize = m_neighborSegmentsSize + 1;
 
  229     template< 
typename FeatureDataTypeT >
 
  233       unsigned int numberOfZeroes = 0;
 
  234       unsigned int idx = 0;
 
  235       for( ; idx < m_neighborSegmentsSize ; ++idx )
 
  237         if( m_neighborSegments[ idx ] == nSegPtr )
 
  239           m_neighborSegments[ idx ] = 0;
 
  242         else if( m_neighborSegments[ idx ] == 0 )
 
  248       unsigned int numberOfNonZeroes = m_neighborSegmentsSize - numberOfZeroes;
 
  250       if( ( m_neighborSegmentsSize > 4 ) && ( numberOfNonZeroes < numberOfZeroes ) )
 
  255         unsigned int idx2 = 0;  
 
  257         for( idx = 0 ; idx < m_neighborSegmentsSize ; ++idx )
 
  259           if( m_neighborSegments[ idx ] )
 
  261             auxVecPtr[ idx2++ ] = m_neighborSegments[ idx ];
 
  265         free( m_neighborSegments );
 
  266         m_neighborSegments = auxVecPtr;
 
  267         m_neighborSegmentsSize = numberOfNonZeroes;
 
  271     template< 
typename FeatureDataTypeT >
 
  274       free( m_neighborSegments );
 
  275       m_neighborSegments = 0;
 
  276       m_neighborSegmentsSize = 0;
 
  281 #endif // __TERRALIB_RP_INTERNAL_SEGMENTERREGIONGROWINGSEGMENT_H