[vtkusers] Differences in display of vtkTextActors between vtk5.0.4 and vtk5.2.1 (shadow and accentuated characters) ??

pof jd379252 at gmail.com
Sun Jan 11 14:13:42 EST 2009


Hello,

I'am trying to upgrade from vtk5.0.4 to vtk5.2.1, and I have two 
problems with the rendering of vtkTextActor.
Basically :
- the shadow property looks rather strange in 5.2.1 compared to 5.0.4
- accuentuated characters (é, è...) are no longer displayed in 5.2.1

Herebelow, a small test program that reproduces the behaviour is given.
I also joined links to illustrate the graphical output obtained with :
- vtk5.0.4 -> http://www.imageshare.web.id/images/mjg8s8miucbecde84rh0.png
- vtk5.2.1 http://www.imageshare.web.id/images/x1ijylcbtox56lbzn12.png

I compiled both vtk version with VC++2005 under WinVista.
Any hints of where the problem may come from?
Thanks
JD

// Example code to show the difference in rendering of vtkTextActor
// Compiled and run either with vtk5.0.4 or vtk5.2.1
//
#include "vtkCylinderSource.h"
#include "vtkPolyDataMapper.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkProperty.h"
#include "vtkCamera.h"
#include "vtkTextProperty.h"
#include "vtkTextActor.h"

int main()
{
    // Create an example text actor.
    vtkTextActor *textActor = vtkTextActor::New();
    
textActor->GetPositionCoordinate()->SetCoordinateSystemToNormalizedViewport();
    textActor->SetPosition(0.50,0.90);
    textActor->SetInput("Geometry based on vtkCylinderSource\nGéométrie 
basée sur vtkCylinderSource\nvtk5.x.x");
    textActor->GetTextProperty()->SetFontSize(18);
    textActor->GetTextProperty()->SetFontFamilyToArial();
    textActor->GetTextProperty()->SetJustificationToCentered();
    textActor->GetTextProperty()->BoldOn();
    textActor->GetTextProperty()->ItalicOn();
    textActor->GetTextProperty()->ShadowOn();
    textActor->GetTextProperty()->SetColor(1, 0, 0);

    // Creates a polygonal cylinder model with eight circumferential facets.
    vtkCylinderSource *cylinder = vtkCylinderSource::New();
    cylinder->SetResolution(8);
    vtkPolyDataMapper *cylinderMapper = vtkPolyDataMapper::New();
    cylinderMapper->SetInputConnection(cylinder->GetOutputPort());
    vtkActor *cylinderActor = vtkActor::New();
    cylinderActor->SetMapper(cylinderMapper);
    cylinderActor->GetProperty()->SetColor(1.0000, 0.3882, 0.2784);
    cylinderActor->RotateX(30.0);
    cylinderActor->RotateY(-45.0);

    // Create the graphics structure.
    vtkRenderer *ren = vtkRenderer::New();
    vtkRenderWindow *renWin = vtkRenderWindow::New();

    renWin->AddRenderer(ren);
    renWin->SetSize(600, 600);

    vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
    iren->SetRenderWindow(renWin);

    // Add the actors to the renderer, set the background and size
    ren->AddActor(cylinderActor);
    ren->AddActor(textActor);
    ren->SetBackground(0.1, 0.2, 0.4);

    // We'll zoom in a little by accessing the camera and invoking a "Zoom"
    // method on it.
    ren->ResetCamera();
    ren->GetActiveCamera()->Zoom(1.5);
    renWin->Render();

    // This starts the event loop and as a side effect causes an initial 
render.
    iren->Start();

    // Exiting from here, we have to delete all the instances that
    // have been created.
    textActor->Delete();
    cylinder->Delete();
    cylinderMapper->Delete();
    cylinderActor->Delete();
    ren->Delete();
    renWin->Delete();
    iren->Delete();

    return 0;
}




More information about the vtkusers mailing list