Пример #1
0
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;
}
Пример #2
0
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();
  }
}
Пример #3
0
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();
}
Пример #4
0
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;
}
Пример #5
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();
}