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

void Impala::Visualization::RotorBrowser::RotorBrowser::DoVisualQuery ( String  type  )  [inline, private]

Definition at line 1924 of file RotorBrowser.h.

References Impala::Core::Trec::ThreadSet::AddThreadShots(), ClearReturnQuery(), Impala::Core::Trec::ThreadSet::CopyToShotsThread(), Impala::Visualization::RotorBrowser::RotorBrowserContext::GetCenter(), GetContext(), Impala::Core::Trec::ThreadSet::GetKeyframes(), GetThreadByName(), ILOG_DEBUG, ILOG_WARN, mActiveContext, Impala::MakeString(), mBrowseMode, mHasReturnQuery, MODE_CROSSBROWSER, MODE_FORKBROWSER, MODE_ROTORBROWSER, mReturnPosition, mThreadSet, mVisualQueryEngine, Impala::Core::Trec::VisualQueryEngine::QueryVisual(), ReloadCrossBrowser(), Impala::Core::Trec::ThreadSet::RemoveThread(), SwitchToContext(), and UpdateViewsToContext().

Referenced by VisualQueryKey().

01925     {
01926         if (mBrowseMode == MODE_FORKBROWSER)
01927         {
01928             ILOG_WARN("DoVisualQuery redundant in ForkBrowser, not executing.");
01929             return;
01930         }
01931 
01932         int active = mActiveContext->GetCenter();
01933 
01934         String tname = "vis_" + type + "_" + MakeString(active);
01935         if (mBrowseMode==MODE_ROTORBROWSER && GetThreadByName("shots_"+tname))
01936         {
01937             ILOG_WARN("DoVisualQuery: thread " << tname << " already exists." );
01938             return;
01939         }
01940 
01941         active = mThreadSet->GetKeyframes()->GetShotRKF(active);
01942         std::list<KeyframeResult> visual =
01943             mVisualQueryEngine->QueryVisual(type, active);
01944         if (visual.empty())
01945         {
01946             ILOG_WARN("DoVisualQuery: " << type << " no results");
01947             return;
01948         }
01949 
01950         if (mBrowseMode == MODE_CROSSBROWSER)
01951         {
01952             ClearReturnQuery();
01953             if (!mHasReturnQuery)
01954             {
01955                 Thread* t = GetThreadByName("shots_initialquery");
01956                 mThreadSet->CopyToShotsThread(t,"returnquery");
01957                 mHasReturnQuery = true;
01958                 mReturnPosition = GetContext("shots_initialquery")->GetCenter();
01959                 ILOG_DEBUG("Stored return query with position " <<
01960                            mReturnPosition);
01961             }
01962             mThreadSet->RemoveThread("shots_initialquery");
01963             mThreadSet->AddThreadShots("initialquery", visual);
01964             ReloadCrossBrowser();
01965             UpdateViewsToContext();
01966             return;
01967         }
01968 
01969         // mode == ROTORBROWSER
01970         mThreadSet->AddThreadShots(tname, visual);
01971         UpdateViewsToContext();
01972         SwitchToContext("shots_" + tname);
01973         UpdateViewsToContext();
01974     }

Here is the call graph for this function:


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