Hi all,<br><br>I am having trouble displaying accentuated characters in vtkTextActor with vtk5.6.0 under MS-VC++2005.<br>Here below is an exemple that reproduces the problem, by printing the same string than contains accents "é,è,à".<br>
When I run this small prog, as a result I obtain that accentuated characters (é,è...) are :<br>- correctly displayed when used in a vtkScalarBarActor title,<br>- not displayed when incorporated in vtkTextActor.<br><br>Any idea where does this come from and how to solve it?<br>
<br>As an additional comment, this used to work correctly under vtk5.0.x, it is only broken from vtk5.2.x up to vtk5.6.0.<br>
<br>Thanks<br>JD<br><br><br>//////////////////////////////////////////////////////<br>////////////////// vtkTextActor bug //////////////////<br>//////////////////////////////////////////////////////<br>#include "vtkActor.h"<br>
#include "vtkRenderer.h"<br>#include "vtkRenderWindow.h"<br>#include "vtkRenderWindowInteractor.h"<br>#include "vtkCamera.h"<br>#include "vtkTextProperty.h"<br>#include "vtkTextActor.h"<br>
#include "vtkActor2D.h"<br>#include "vtkLookupTable.h"<br>#include "vtkScalarBarActor.h"<br><br>int main()<br>{<br> // Tested string<br> char text[] = "Test: é, è, à";<br><br>
// Create an example text actor<br> vtkTextActor *textActor = vtkTextActor::New();<br> textActor->SetInput(text);<br> textActor->GetPositionCoordinate()->SetCoordinateSystemToNormalizedViewport();<br>
textActor->SetPosition(0.50,0.50);<br> textActor->GetTextProperty()->SetFontSize(30);<br> textActor->GetTextProperty()->SetJustificationToCentered();<br> textActor->GetTextProperty()->SetColor(1, 0, 0);<br>
<br> // Create a Lut<br> vtkLookupTable *Lut = vtkLookupTable::New();<br> Lut->SetHueRange (160.0/240.0, 0.0);<br> Lut->SetSaturationRange (1.0, 1.0);<br> Lut->SetValueRange (1.0, 1.0);<br> Lut->SetTableRange (0,100);<br>
Lut->Build();<br><br> // Create a ScalarBarActor<br> vtkScalarBarActor *scalarBar = vtkScalarBarActor::New();<br> scalarBar->SetTitle(text);<br> scalarBar->SetLookupTable(Lut);<br> scalarBar->SetHeight(0.5);<br>
scalarBar->SetWidth(0.1);<br> scalarBar->SetPosition(0.10,0.01);<br> scalarBar->SetPosition2(0.80,0.1);<br> scalarBar->SetOrientationToHorizontal();<br><br> // Create the graphics structure<br>
vtkRenderer *ren = vtkRenderer::New();<br> vtkRenderWindow *renWin = vtkRenderWindow::New();<br> renWin->AddRenderer(ren);<br> renWin->SetSize(600, 600);<br> vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();<br>
iren->SetRenderWindow(renWin);<br><br> // Add the actors to the renderer, set the background and size<br> ren->AddActor(textActor);<br> ren->AddActor(scalarBar);<br> ren->SetBackground(0.1, 0.2, 0.4);<br>
ren->ResetCamera();<br> ren->GetActiveCamera()->Zoom(1.0);<br> renWin->Render();<br><br> // Starts the event loop<br> iren->Start();<br><br> // Do some cleaning<br> textActor->Delete();<br>
Lut->Delete();<br> scalarBar->Delete();<br> ren->Delete();<br> renWin->Delete();<br> iren->Delete();<br><br> return 0;<br>}<br>