Home || Architecture || Video Search || Visual Search || Scripts || Applications || 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, mImageSet, mListeners, and Impala::Core::Database::RawDataSet::NrDirs().

Referenced by Impala::Application::mainImSet(), and Impala::Application::mainShotSegmentation().

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                 Array::Array2dVec3UInt8* im = 0;
00085                 if (useIm)
00086                     im = mImageSet->GetImage(fileId);
00087                 for (size_t l=0 ; l<mListeners.size() ; l++)
00088                     mListeners[l]->HandleNewFile(mImageSet, fileId, im);
00089                 if (im)
00090                     delete im;
00091             }
00092             for (size_t l=0 ; l<mListeners.size() ; l++)
00093                 mListeners[l]->HandleDoneDir(mImageSet, dirId);
00094         }
00095         for (size_t l=0 ; l<mListeners.size() ; l++)
00096             mListeners[l]->HandleDoneWalk(mImageSet);
00097     }

Here is the call graph for this function:


Generated on Fri Mar 19 11:15:32 2010 for ImpalaSrc by  doxygen 1.5.1