25 #ifndef __TERRALIB_RP_INTERNAL_SEGMENTERREGIONGROWINGSEGMENTSPOOL_H    26 #define __TERRALIB_RP_INTERNAL_SEGMENTERREGIONGROWINGSEGMENTSPOOL_H    33 #include <boost/noncopyable.hpp>    44     template< 
typename FeatureDataTypeT >
    61                        const unsigned int featuresNumber );            
   121     template< 
typename FeatureDataTypeT >
   129     template< 
typename FeatureDataTypeT >
   135     template< 
typename FeatureDataTypeT >
   138       const unsigned int featuresNumber )
   146           unsigned int nCols = (
unsigned int)std::floor( std::sqrt( (
double)segsNumber ) );
   147           unsigned int nRows = (
unsigned int)std::ceil( ((
double)segsNumber) / 
   149           assert( ( nCols * nRows ) >= segsNumber );
   170             unsigned int col = 0;
   171             for( 
unsigned int row = 0 ; row < nRows ; ++row )
   173               for( col = 0 ; col < nCols ; ++col )
   175                 m_segments[ row ][ col ].m_neighborSegments = 0;
   176                 m_segments[ row ][ col ].m_neighborSegmentsSize = 0;
   178                 m_segments[ row ][ col ].m_featuresSize = featuresNumber;
   184             unsigned int col = 0;
   185             for( 
unsigned int row = 0 ; row < nRows ; ++row )
   187               for( col = 0 ; col < nCols ; ++col )
   189                 m_segments[ row ][ col ].m_neighborSegments = 0;
   190                 m_segments[ row ][ col ].m_neighborSegmentsSize = 0;
   207     template< 
typename FeatureDataTypeT >
   230     template< 
typename FeatureDataTypeT >
   233       unsigned int nRows = 
m_segments.getLinesNumber();
   234       unsigned int nCols = 
m_segments.getColumnsNumber();      
   236       unsigned int col = 0;
   237       for( 
unsigned int row = 0 ; row < nRows ; ++row )
   239         for( col = 0 ; col < nCols ; ++col )
   241           if( 
m_segments[ row ][ col ].m_neighborSegments )
   243             m_segments[ row ][ col ].removeAllNeighborSegmentsPtrs();
   255     template< 
typename FeatureDataTypeT >
   261     template< 
typename FeatureDataTypeT >
   270 #endif // __TERRALIB_RP_INTERNAL_SEGMENTERREGIONGROWINGSEGMENTSPOOL_H SegmenterRegionGrowingSegmentsPool()
 
bool initialize(const SegmenterSegmentsBlock::SegmentIdDataType segsNumber, const unsigned int featuresNumber)
Pool initialization. 
 
SegmenterSegmentsBlock::SegmentIdDataType m_segsNumber
The number of segments allocated segments. 
 
Matrix< SegmenterRegionGrowingSegment< FeatureDataTypeT > > & getSegsMatrix()
Return a reference to the internal segments matrix. 
 
SegmenterSegmentsBlock::SegmentIdDataType m_nextUnusedSegmentIdx
The next unused segment index. 
 
void resetUseCounter()
Reset the segments use counter. 
 
unsigned int SegmentIdDataType
 
~SegmenterRegionGrowingSegmentsPool()
 
void clear()
Clear all stored data. 
 
Matrix< SegmenterRegionGrowingSegment< FeatureDataTypeT > > m_segments
Internal stored segments. 
 
void reset()
Reset (clear) the active instance data. 
 
unsigned int m_featuresNumber
The number of features for each created segment. 
 
unsigned int m_getNextSegment_col
 
SegmenterRegionGrowingSegment< FeatureDataTypeT > * getNextSegment()
Retrive a stored segment. 
 
unsigned int m_getNextSegment_line
 
Configuration flags for the Raster Processing module of TerraLib. 
 
A generic template matrix. 
 
SegmenterSegmentsBlock::SegmentIdDataType getSegmentsNumber() const 
Return the current allocated segments number. 
 
Matrix< FeatureDataTypeT > m_segmentsFeatures
Internal stored segment features.