bool LayerSurface::LoadLabelFromFile( const QString& filename ) { // create annotation SurfaceLabel* label = new SurfaceLabel( this ); bool ret = label->LoadLabel( filename ); if ( !ret ) { delete label; return false; } QFileInfo fi(filename); if ( fi.suffix() == ".label" ) { label->SetName( fi.completeBaseName() ); } else { label->SetName( fi.fileName() ); } m_labels.push_back( label ); SetActiveLabel( m_labels.size() - 1 ); UpdateOverlay(false); emit Modified(); emit SurfaceLabelAdded( label ); return true; }
void LayerSurface::SetActiveOverlay( int nOverlay ) { if ( nOverlay < (int)m_overlays.size() ) { if ( m_nActiveOverlay < 0 && nOverlay >= 0 ) { this->GetProperty()->SetCurvatureMap( LayerPropertySurface::CM_Binary ); } m_nActiveOverlay = nOverlay; UpdateOverlay(false); emit ActiveOverlayChanged( nOverlay ); emit ActorUpdated(); } }
void LayerSurface::UpdateColorMap() { if ( m_surfaceSource == NULL ) { return; } for ( int i = 0; i < 3; i++ ) { m_sliceActor2D[i]->GetProperty()->SetColor( GetProperty()->GetEdgeColor() ); m_sliceActor3D[i]->GetProperty()->SetColor( GetProperty()->GetEdgeColor() ); m_sliceActor2D[i]->GetMapper()->ScalarVisibilityOff(); m_sliceActor3D[i]->GetMapper()->ScalarVisibilityOff(); m_vectorActor2D[i]->GetProperty()->SetColor( GetProperty()->GetVectorColor() ); } m_mainActor->GetProperty()->SetColor( GetProperty()->GetBinaryColor() ); m_wireframeActor->GetProperty()->SetColor( GetProperty()->GetBinaryColor() ); m_vectorActor->GetProperty()->SetColor( GetProperty()->GetVectorColor() ); if ( m_surfaceSource->IsCurvatureLoaded() ) { if ( GetProperty()->GetCurvatureLUT() != m_mainActor->GetMapper()->GetLookupTable() ) { m_mainActor->GetMapper()->SetLookupTable( GetProperty()->GetCurvatureLUT() ); } if ( GetProperty()->GetMeshColorMap() == LayerPropertySurface::MC_Surface ) { m_wireframeActor->GetMapper()->SetLookupTable( GetProperty()->GetCurvatureLUT() ); } else if ( GetProperty()->GetMeshColorMap() == LayerPropertySurface::MC_Curvature ) { UpdateMeshRender(); } /* vtkSmartPointer<vtkMapperCollection> mc = m_mainActor->GetLODMappers(); mc->InitTraversal(); vtkMapper* mapper = NULL; while ( ( mapper = mc->GetNextItem() ) != NULL ) { mapper->SetLookupTable( GetProperty()->GetCurvatureLUT() ); } */ } UpdateOverlay(false); emit ActorUpdated(); }
DWORD WINAPI MainOVRThread(LPVOID pData) { static long lLock=0; if(lLock>0){ return 0; } ::EnterCriticalSection(&csMain); srand(time(NULL)); SimpleTracker tr(lLock); SetThreadPriority( GetCurrentThread(), THREAD_PRIORITY_IDLE ); while(1){ WaitForSingleObject(objSettings.hSync,objSettings.dwTimeout); if(objSettings.bRunState==0){ break; } HWND hWin=GetForegroundWindow(); if(hWin==NULL || !IsZoomed(hWin)){ // Animate the image UpdateImage(); // Show the new frame if(UpdateOverlay()==-1){ if(objSettings.bRunState){ static DWORD dwTry=0; if(dwTry==0 || long(GetTickCount()-dwTry)>10000){ dwTry=GetTickCount(); UninitOverlay(); if(InitOverlay()>=0){ dwTry=0; } } } }; } } ::LeaveCriticalSection(&csMain); return 0; }
void Game::Update() { display->Clear(0.1f, 0.1f, 0.1f, 1.0f); if (controller.isClosing()) { timer->Pause(); state = MENU; menu->SetState(MenuState::PAUSE); } timer->Update(); totalTime = timer->GetTotalTime(); elapsedTime = timer->GetElapsedTime(); controller.Update(elapsedTime); while (SDL_PollEvent(&e)) controller.HandleInput(e); switch (state) { case(GameState::MENU) : menu->Update(elapsedTime, totalTime); switch (menu->GetState()) { case(MenuState::START) : Restart(); break; case(MenuState::RESUME) : timer->Resume(); state = GameState::RUNNING; break; case(MenuState::QUIT) : End(); break; case(MenuState::RETRY) : Restart(); break; } break; case(GameState::RUNNING) : UpdateBackground(elapsedTime, totalTime); UseBomb(); Shoot(); UpdateBomb(elapsedTime, totalTime); UpdatePlayerBullets(elapsedTime, totalTime); UpdatePlayer(elapsedTime, totalTime); if (player->IsHit()) PlayerHit(); enemyHandler->Update(elapsedTime, totalTime, &playerbullets, bomb); if (!enemyHandler->EnemiesLeft()) Won(); if (player->GetState() == GameObject::DEAD) Lost(); UpdateOverlay(elapsedTime, totalTime); break; } display->Update(); }