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

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

Definition at line 258 of file RgbDataSrcFactory.h.

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

Referenced by Impala::Core::VideoSet::VideoSet::GetVideo(), and Impala::Core::VideoSet::VideoSet::GetVideoInLowResolution().

00260     {
00261         RgbDataSrc* slave = Construct(srcName, srcOption, db);
00262 #else // REPOSITORY_USED
00263     RgbDataSrc*
00264     ConstructWindow(const RgbDataSrcLocator& loc, CString srcOption,
00265                     CString windowOption)
00266     {
00267         RgbDataSrc* slave = Construct(loc, srcOption);
00268 #endif // REPOSITORY_USED
00269         if (windowOption.empty())
00270             return slave;
00271 
00272         StringList sList(windowOption, ';');
00273         if (sList.size() < 3)
00274         {
00275             ILOG_ERROR("src window needs at least 3 arguments");
00276             return slave;
00277         }
00278 
00279         StringListCI it = sList.begin();
00280         String sizeType = *it++; // should be just "size"
00281         int wSize = atol(*it++);
00282         String prepType = *it++;
00283         if (prepType == "copyreal")
00284         {
00285             WindowPrepCopyToVec3Real64* prep = new WindowPrepCopyToVec3Real64();
00286             typedef RgbDataSrcWindow<WindowPrepCopyToVec3Real64> WindowType;
00287             WindowType* win = new WindowType(slave, wSize, prep, true, true);
00288             return win;
00289         }
00290         if (prepType == "rgb2ooo")
00291         {
00292             WindowPrepRgb2Ooo* prep = new WindowPrepRgb2Ooo();
00293             typedef RgbDataSrcWindow<WindowPrepRgb2Ooo> WindowType;
00294             WindowType* win = new WindowType(slave, wSize, prep, true, true);
00295             return win;
00296         }
00297         if (prepType == "gauss")
00298         {
00299             if (sList.size() != 7)
00300             {
00301                 ILOG_ERROR("gauss prep window needs 4 arguments");
00302                 return slave;
00303             }
00304             double sigma = atof(*it++);
00305             int orderDerivx = atol(*it++);
00306             int orderDerivy = atol(*it++);
00307             double truncation = atof(*it++);
00308             WindowPrepGaussDerivative* prep =
00309                 new WindowPrepGaussDerivative(sigma, orderDerivx, orderDerivy,
00310                                               truncation);
00311             typedef RgbDataSrcWindow<WindowPrepGaussDerivative> WindowType;
00312             WindowType* win = new WindowType(slave, wSize, prep, true, true);
00313             return win;
00314         }
00315         ILOG_ERROR("Unknown window prep type " << prepType << "!");
00316         return slave;
00317     }

Here is the call graph for this function:


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