Hi Peter,

you need to insert a vtkrenderer for your text as "foreground" renderer. In the 
Measurment plugin we do it like that:

....
// instantiate the objects ...
m_MeasurementInfoRenderer = vtkRenderer::New();
m_MeasurementInfoAnnotation = vtkCornerAnnotation::New();
vtkTextProperty *textProp = vtkTextProperty::New();

m_MeasurementInfoAnnotation->SetMaximumFontSize(12);
textProp->SetColor(1.0, 1.0, 1.0);
m_MeasurementInfoAnnotation->SetTextProperty(textProp);

m_MeasurementInfoRenderer->AddActor(m_MeasurementInfoAnnotation);

...
// add or remove text, "m_LastRenderWindow" is the mitk renderwindow you want 
to use
    if (!text.isEmpty() && m_SelectedPlanarFigures->GetNode()->IsSelected())
    {
      m_MeasurementInfoAnnotation->SetText(1, text.toLatin1().data());
      
mitk::VtkLayerController::GetInstance(m_LastRenderWindow->GetRenderWindow())->InsertForegroundRenderer(
        m_MeasurementInfoRenderer, true);
    }
    else
    {
      if (mitk::VtkLayerController::GetInstance(
        m_LastRenderWindow->GetRenderWindow()) ->IsRendererInserted(
        m_MeasurementInfoRenderer))
        
mitk::VtkLayerController::GetInstance(m_LastRenderWindow->GetRenderWindow())->RemoveRenderer(
        m_MeasurementInfoRenderer);
    }

In a nutshell: Add the vtk objects and then insert the respective vtkRenderer 
with the VtkLayerController as foreground renderer.

Hope this helps,
Michael

Von: Pierre LE COZ [mailto:[email protected]]
Gesendet: Sonntag, 29. Januar 2012 13:16
An: [email protected]
Betreff: [mitk-users] Write simple text on render windows?

Dear Mitk users and Team,

I'm currently trying to display several information (modality, slice thickness 
etc...) on the render window.
First, I try to print out a simple "Hello!". I have the following code but 
nothing is displayed :(

  QmitkSliceWidget* sagittaleView = new QmitkSliceWidget;
  sagittaleView->SetLevelWindowEnabled(true);
  sagittaleView->SetDataStorage(mDataStorage);
  mitk::DataStorage::SetOfObjects::ConstPointer rs = mDataStorage->GetAll();
  sagittaleView->SetData(rs->Begin(),mitk::SliceNavigationController::Sagittal);
  
mDataStorage->Add(sagittaleView->GetRenderer()->GetCurrentWorldGeometry2DNode());

  mitk::VtkPropRenderer* rendererP = 
dynamic_cast<mitk::VtkPropRenderer*>(mitk::BaseRenderer::GetInstance(sagittaleView->GetRenderer()->GetRenderWindow()));
  rendererP->WriteSimpleText("Hello!",20,20,1.0,1.0,1.0);


I tried to print out simple text on a 3D render window, but nothing appears 
neither :

mitk::VtkPropRenderer* rendererP3d = 
dynamic_cast<mitk::VtkPropRenderer*>(mitk::BaseRenderer::GetInstance(renderWindow3D->GetRenderWindow()));
rendererP3d->WriteSimpleText("Hello!",50,50,1.0,1.0,1.0);

Any Idea why it doesn't work?

Thanks a million !

Peter
------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to