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

virtual void Impala::Visualization::RotorBrowser::RotorBrowser::DisplayFunc (  )  [inline, virtual]

Reimplemented from OglGui::Window.

Definition at line 352 of file RotorBrowser.h.

References CheckFocus(), GetContext(), Impala::Visualization::RotorBrowser::RotorBrowserContext::GetDepth(), Impala::Visualization::RotorBrowser::RotorBrowserContext::GetDirection(), Impala::Visualization::RotorBrowser::RotorBrowserContext::GetNiceName(), OglGui::OglWindow::GetOGLWND(), Impala::Visualization::RotorBrowser::RotorViewCache::GetViews(), M_PI, mActiveContext, mBrowseMode, mCache, mContexts, MODE_CROSSBROWSER, MODE_FORKBROWSER, MODE_ROTORBROWSER, mShowDirection, Printf3D(), and OglGui::OglWindow::UpdateScene().

00353     {
00354 // RvB: Added as screen sometimes flashes when using Widgets otherwise
00355 #ifndef AS_TODS_BROWSER
00356         CheckFocus();
00357 #endif
00358         view3DSys.View3DCameraTransform(GetOGLWND());
00359 
00360         // 29-8-2007 -Ork- place name of current time thread on horizontal axis:
00361         if (mBrowseMode==MODE_CROSSBROWSER || mBrowseMode==MODE_FORKBROWSER)
00362         {
00363             RotorBrowserContext *time = GetContext("time");
00364             float w = 1.0 + time->GetDepth() * 2.0;
00365             Printf3D(w/3,-1.05f,-9.1f,0.4f,0.4f,0.1f,time->GetNiceName());
00366         }
00367 
00368         if (mBrowseMode == MODE_ROTORBROWSER)
00369         {
00370             RotorBrowserContextList::iterator ctx;
00371             for (ctx = mContexts.begin(); ctx != mContexts.end(); ctx++)
00372             {
00373                 glPushMatrix();
00374                 float w = 1.0 + (*ctx)->GetDepth() * 3.0;
00375                 glRotatef((*ctx)->GetDirection()/M_PI*180.0f,0.f,0.f,1.f);
00376                 Printf3D(w/3,-1.05f,-9.1f,0.4f,0.4f,0.1f,(*ctx)->GetNiceName());
00377                 glPopMatrix();
00378             }
00379         }
00380         
00381         if (mBrowseMode == MODE_ROTORBROWSER && mShowDirection)
00382         {
00383             glPushMatrix();
00384             float w = 1.0 + mActiveContext->GetDepth() * 3.0;
00385             OGC   oldOGC;
00386             INT   oldBlendInfo[3];
00387             OGCSave(&oldOGC);
00388             oglSys.StartBlend(&oldBlendInfo[0]);
00389             glRotatef(mActiveContext->GetDirection()/M_PI*180.f, 0.f, 0.f, 1.f);
00390             ULONG colL = 0x22ff0000, colR = 0x2200ff00;
00391             SetFillColors(colL,colR,colR,colL,0xee000000);
00392             FillRoundRectExt3D(-w/2, -1.f, -10.1f, w, 2.f, 5.f, 5.f, 5.f, 5.f);
00393             glColor3f(0.5f, 0.f, 0.f);
00394             Printf3D(w/4, -1.f, -8.1f, 0.5f, 0.5f, 0.1f,
00395                      mActiveContext->GetNiceName());
00396             oglSys.EndBlend(&oldBlendInfo[0]);
00397             OGCRestore(&oldOGC);
00398             glPopMatrix();
00399         }
00400 
00401         if (mBrowseMode == MODE_FORKBROWSER)
00402         {
00403             // FORK_TODO
00404         }
00405 
00406         // retrieve the active views (in a nice OGLy fashion):
00407         RotorViewList views = mCache->GetViews();
00408 
00409         // show them all:
00410         bool updateNeeded = false;
00411         RotorViewList::const_iterator i;
00412         for (i = views.begin(); i != views.end(); i++)
00413             updateNeeded |= (*i)->DrawView();
00414 
00415         if (updateNeeded)
00416             UpdateScene();
00417     }

Here is the call graph for this function:


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