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

RgbDataSrc* Impala::Core::Stream::RgbDataSrcFactory::ConstructWindow ( CString  srcName,
CString  srcOption,
CString  windowOption,
Util::Database db 
) [inline]

Definition at line 312 of file RgbDataSrcFactory.h.

References Impala::atof(), Impala::atol(), Construct(), ILOG_ERROR, and Impala::Application::DemoCamera2d::sigma.

Referenced by Impala::Core::VideoSet::VideoSet::GetVideo().

00314     {
00315         RgbDataSrc* slave = Construct(srcName, srcOption, db);
00316 #else // REPOSITORY_USED
00317     RgbDataSrc*
00318     ConstructWindow(const RgbDataSrcLocator& loc, CString srcOption,
00319                     CString windowOption)
00320     {
00321         RgbDataSrc* slave = Construct(loc, srcOption);
00322 #endif // REPOSITORY_USED
00323         if (windowOption.empty())
00324             return slave;
00325 
00326         StringList sList(windowOption, ';');
00327         if (sList.size() < 3)
00328         {
00329             ILOG_ERROR("src window needs at least 3 arguments");
00330             return slave;
00331         }
00332 
00333         StringListCI it = sList.begin();
00334         String sizeType = *it++; // should be just "size"
00335         int wSize = atol(*it++);
00336         String prepType = *it++;
00337         if (prepType == "copyreal")
00338         {
00339             WindowPrepCopyToVec3Real64* prep = new WindowPrepCopyToVec3Real64();
00340             typedef RgbDataSrcWindow<WindowPrepCopyToVec3Real64> WindowType;
00341             WindowType* win = new WindowType(slave, wSize, prep, true, true);
00342             return win;
00343         }
00344         if (prepType == "rgb2ooo")
00345         {
00346             WindowPrepRgb2Ooo* prep = new WindowPrepRgb2Ooo();
00347             typedef RgbDataSrcWindow<WindowPrepRgb2Ooo> WindowType;
00348             WindowType* win = new WindowType(slave, wSize, prep, true, true);
00349             return win;
00350         }
00351         if (prepType == "gauss")
00352         {
00353             if (sList.size() != 7)
00354             {
00355                 ILOG_ERROR("gauss prep window needs 4 arguments");
00356                 return slave;
00357             }
00358             double sigma = atof(*it++);
00359             int orderDerivx = atol(*it++);
00360             int orderDerivy = atol(*it++);
00361             double truncation = atof(*it++);
00362             WindowPrepGaussDerivative* prep =
00363                 new WindowPrepGaussDerivative(sigma, orderDerivx, orderDerivy,
00364                                               truncation);
00365             typedef RgbDataSrcWindow<WindowPrepGaussDerivative> WindowType;
00366             WindowType* win = new WindowType(slave, wSize, prep, true, true);
00367             return win;
00368         }
00369         ILOG_ERROR("Unknown window prep type " << prepType << "!");
00370         return slave;
00371     }

Here is the call graph for this function:


Generated on Fri Mar 19 11:17:20 2010 for ImpalaSrc by  doxygen 1.5.1