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:
|