Beispiel #1
0
void mitk::TextOverlay3D::UpdateVtkOverlay(mitk::BaseRenderer *renderer)
{
  LocalStorage* ls = this->m_LSH.GetLocalStorage(renderer);
  if(ls->IsGenerateDataRequired(renderer,this))
  {
    ls->m_follower->SetPosition(
      GetPosition3D(renderer)[0]+GetOffsetVector(renderer)[0],
      GetPosition3D(renderer)[1]+GetOffsetVector(renderer)[1],
      GetPosition3D(renderer)[2]+GetOffsetVector(renderer)[2]);
    ls->m_textSource->SetText(GetText().c_str());
    float color[3] = {1,1,1};
    float opacity = 1.0;
    GetColor(color,renderer);
    GetOpacity(opacity,renderer);
    ls->m_follower->GetProperty()->SetColor(color[0], color[1], color[2]);
    ls->m_follower->GetProperty()->SetOpacity(opacity);
    ls->m_follower->SetScale(this->GetFontSize());
    vtkRenderer* vtkRender = renderer->GetVtkRenderer();
    if(vtkRender)
      ls->m_follower->SetCamera(vtkRender->GetActiveCamera());
    ls->UpdateGenerateDataTime();
  }
}
Beispiel #2
0
bool CPlayer::HandleEvent( UINT eventId, void* data, UINT data_sz )
{
	static const EMovementFlagType movementMap[] = {
		MOVE_FORWARD_FLAG,
		MOVE_BACKWARD_FLAG,
		MOVE_LEFT_FLAG,
		MOVE_RIGHT_FLAG,
		};

	switch( eventId )
	{
	case EVT_UPDATE:
		assert( data_sz == sizeof(float) );
		assert( data != NULL );
		Update( *(float*)data );
		break;
	case EVT_INIT:
		assert( data_sz == sizeof(CMeshManager*) );
		assert( data != NULL );
		Setup( *reinterpret_cast<CMeshManager*>(data) );
		break;
	case EVT_GETFACINGVEC:
		{
		assert( data_sz == sizeof(GetFacingEventArgType) );
		assert( data != NULL );
		*(GetFacingEventArgType*)data = GetRotationRadians();
		break;
		}
	case EVT_SETFACINGVEC:
		{
		assert( data_sz == sizeof(SetFacingEventArgType) );
		assert( data != NULL );
		SetFacingEventArgType* arg = (SetFacingEventArgType*)data;
//		SetXRotationRadians(arg->x);
		SetYRotationRadians(arg->y);
//		SetZRotationRadians(arg->z);
		break;
		}
	case EVT_MOVECMD:
		{
		assert( data_sz == sizeof(MovementCommandType) );
		assert( data != NULL );
		MovementCommandType* args = (MovementCommandType*)data;
		if(args->clearFlag)
			m_movementState &= ~movementMap[args->state];
		else
			m_movementState |= movementMap[args->state];
		break;
		}
	case EVT_GETPOSITIONVEC:
		assert( data_sz == sizeof(GetPosEventArgType) );
		assert( data != NULL );
		*(GetPosEventArgType*)data = GetPosition3D();
		break;
	case EVT_CONTROL_LOST_FOCUS:
	case EVT_CONTROL_GAIN_FOCUS:
		m_movementState &= ~MOVE_FLAG_MASK;
		break;
	case EVT_ATTACH_CAMERA:
		assert( data_sz == sizeof(CCamera*) );
		assert( data != NULL );
		reinterpret_cast<CCamera*>(data)->SetLocalPosition(Vector_3(-5.0f, 12.0f, -20.0f));
		break;
	default:
		assert(false);
		break;
	}

	return true;
}