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