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

void Impala::Visualization::RotorBrowser::RotorView::RegisterView ( OglGui::Window b,
float  x,
float  y,
RotorViewCacheResolver resolver 
) [inline, private]

Definition at line 470 of file RotorView.h.

References Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::CH(), Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::CW(), Impala::Core::Trec::ThreadSet::GetImageByShotID(), OglGui::View::GetOGLVIEW3D(), OglGui::OglWindow::GetOGLWND(), ILOG_ERROR, ILOG_WARN, InitOGLIMAGE(), mActH, mActW, mActX, mActY, mActZ, mAspectRatio, mBrowser, mCurrentRes, mForceAspect, mIsHighRes, mMoveNow, mNr, mReqH, mReqW, mReqX, mReqY, mReqZ, mThreadSet, mView, Impala::Application::DemoCamera2d::oglWnd, Impala::Visualization::RotorBrowser::RotorDoDView::SetCurrentRotorView(), UpdateWithImage(), and VIEW_ROTORVIEW.

Referenced by RotorView().

00471     {
00472         mBrowser    = b;
00473         mCurrentRes = mIsHighRes;
00474 
00475         Array2dVec3UInt8* image = mThreadSet->GetImageByShotID(mNr,mIsHighRes);
00476         OGLWND*           oglWnd = b->GetOGLWND();
00477         if (image == NULL)
00478         {
00479             ILOG_WARN("NULL image received for shot ID " << mNr);
00480             mView = new RotorDoDView(oglWnd,NULL,x,y,-10.0f,1.0f,1.0f,1.0f);
00481         }
00482         else
00483         {
00484             int imW = image->CW(), imH = image->CH();
00485             if (!mForceAspect)
00486                 mAspectRatio = imH==0 ? 1.f : imW/(float)imH;
00487             if (resolver) // recycle old RotorDoDView for new purposes.
00488             {                
00489                 // This is fastest when old view had the same texture size.
00490                 if (!(mView = resolver->FindRecycledView(imW, imH)))
00491                     ILOG_ERROR("RegisterView:resolver should not return NULL!");
00492                 UpdateWithImage(image);
00493             }
00494             else // nothing to recycle: create a new view
00495             {   
00496                 OGLIMAGE *im = InitOGLIMAGE(image);
00497                 mView = new RotorDoDView(oglWnd,im,x,y,-100.0f,1.0f,1.0f,1.0f);
00498                 oglSys.ReleaseOglImage(im);
00499             }
00500         }
00501 
00502         view3DSys.SetUserData(mView->GetOGLVIEW3D(), VIEW_ROTORVIEW, this);
00503 
00504          // map rectangle select to this RotorView now.
00505         mView->SetCurrentRotorView(this);
00506 
00507         mActX = mReqX = x;
00508         mActY = mReqY = y;
00509         mActZ = mReqZ = -10.0f;
00510 
00511         mActW = mActH = mReqW = mReqH = 0.0f;
00512         mMoveNow = true;
00513     }

Here is the call graph for this function:


Generated on Thu Jan 13 09:26:00 2011 for ImpalaSrc by  doxygen 1.5.1