Home || Visual Search || Applications || Architecture || Important Messages || OGL || Src

void Impala::Core::ImageSet::Walker::DoWalk ( int  startDir,
int  numberDirs 
) [inline]

Definition at line 48 of file Walker.h.

References Impala::CmdOptions::GetBool(), Impala::Core::Database::RawDataSet::GetFirstFileId(), Impala::Core::ImageSet::ImageSet::GetImage(), Impala::CmdOptions::GetInstance(), Impala::CmdOptions::GetInt(), Impala::Core::Database::RawDataSet::GetNrFiles(), ILOG_ERROR, ILOG_NDC_POP, ILOG_NDC_PUSH, mImageSet, mListeners, and Impala::Core::Database::RawDataSet::NrDirs().

Referenced by Impala::Application::mainImSet().

00049     {
00050         if (startDir >= mImageSet->NrDirs())
00051         {
00052             ILOG_ERROR("DoWalk: startDir out of range");
00053             return;
00054         }
00055         CmdOptions& options = CmdOptions::GetInstance();
00056         bool useIm = ! options.GetBool("virtualWalk");
00057         if (numberDirs == -1)
00058             numberDirs = mImageSet->NrDirs() - startDir;
00059         if (startDir + numberDirs >= mImageSet->NrDirs())
00060             numberDirs = mImageSet->NrDirs() - startDir;
00061 
00062         for (size_t l=0 ; l<mListeners.size() ; l++)
00063         {
00064             mListeners[l]->HandleNewWalk(mImageSet);
00065             mListeners[l]->HandleNewWalk(mImageSet, String("Image"));
00066         }
00067         for (int dirId=startDir ; dirId<startDir+numberDirs ; dirId++)
00068         {
00069             for (size_t l=0 ; l<mListeners.size() ; l++)
00070                 mListeners[l]->HandleNewDir(mImageSet, dirId);
00071 
00072             int startFile = options.GetInt("startFile");
00073             int numberFiles = options.GetInt("numberFiles");
00074             int startF = mImageSet->GetFirstFileId(dirId);
00075             int numberF = mImageSet->GetNrFiles(dirId);
00076             if (startFile < numberF)
00077                 startF += startFile;
00078             if (numberFiles == -1)
00079                 numberFiles = numberF;
00080             if (startFile + numberFiles <= numberF)
00081                 numberF = numberFiles;
00082             for (int fileId=startF ; fileId<startF+numberF ; fileId++)
00083             {
00084                 ILOG_NDC_PUSH("image " << fileId);
00085                 Array::Array2dVec3UInt8* im = 0;
00086                 if (useIm)
00087                     im = mImageSet->GetImage(fileId);
00088                 for (size_t l=0 ; l<mListeners.size() ; l++)
00089                     mListeners[l]->HandleNewFile(mImageSet, fileId, im);
00090                 if (im)
00091                     delete im;
00092                 ILOG_NDC_POP;
00093             }
00094             for (size_t l=0 ; l<mListeners.size() ; l++)
00095                 mListeners[l]->HandleDoneDir(mImageSet, dirId);
00096         }
00097         for (size_t l=0 ; l<mListeners.size() ; l++)
00098             mListeners[l]->HandleDoneWalk(mImageSet);
00099     }

Here is the call graph for this function:


Generated on Thu Jan 13 09:20:09 2011 for ImpalaSrc by  doxygen 1.5.1