X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkText3D.cxx;fp=packages%2Fvtk%2Fsrc%2FbbvtkText3D.cxx;h=880bd615d0343140d8d891419487c2333663e3a3;hb=9e95afcbc51687ad39d72aa6017837717bcb486b;hp=ef38350d3ea4aa35aba036c22337e6f95d8e9547;hpb=6d51daa37bb1a74e8a42053a4c47c3e3ef074406;p=bbtk.git diff --git a/packages/vtk/src/bbvtkText3D.cxx b/packages/vtk/src/bbvtkText3D.cxx index ef38350..880bd61 100644 --- a/packages/vtk/src/bbvtkText3D.cxx +++ b/packages/vtk/src/bbvtkText3D.cxx @@ -4,9 +4,6 @@ #include "bbvtkText3D.h" #include "bbvtkPackage.h" -#include "vtkTextActor3D.h" -#include "vtkTextProperty.h" - namespace bbvtk { @@ -31,28 +28,35 @@ void Text3D::Process() // * TYPE is the C++ type of the input/output // (the one provided in the attribute 'type' of the tag 'input') - vtkTextActor3D *textActor = vtkTextActor3D::New(); - vtkTextProperty *textprop = vtkTextProperty::New(); - textprop->SetColor( bbGetInputColour()[0] , bbGetInputColour()[1], bbGetInputColour()[2] ); - textprop->SetFontSize( 14 ); - - textActor->SetTextProperty( textprop ); - - textActor->SetInput( bbGetInputIn().c_str() ); - textActor->SetPosition( bbGetInputX(), bbGetInputY(),bbGetInputZ() ); + // First time : creates the text actor and sets its text. + if (_textActor == NULL) + { + _textActor = vtkTextActor3D::New(); + _textProp = vtkTextProperty::New(); if ( bbGetInputRenderer()!=NULL ) { - bbGetInputRenderer()->AddActor( textActor ); + bbGetInputRenderer()->AddActor( _textActor ); } + _textProp->SetFontSize( 14 ); + _textActor->SetTextProperty( _textProp ); + } + // If the text actor already exists in the scene, simply refresh its text. + else + { + _textProp->SetColor( bbGetInputColour()[0] , bbGetInputColour()[1], bbGetInputColour()[2] ); + + _textActor->SetInput( bbGetInputIn().c_str() ); + _textActor->SetPosition( bbGetInputX(), bbGetInputY(),bbGetInputZ() ); if ( bbGetInputTransform()!=NULL ) { - textActor->SetUserTransform( bbGetInputTransform() ); + _textActor->SetUserTransform( bbGetInputTransform() ); } - bbSetOutputOut(textActor); - + bbSetOutputOut(_textActor); + } } + //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== @@ -61,7 +65,7 @@ void Text3D::bbUserSetDefaultValues() // SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX // Here we initialize the input 'In' to 0 - bbSetInputIn(""); + bbSetInputIn(""); bbSetInputX(0); bbSetInputY(0); bbSetInputZ(0); @@ -73,6 +77,9 @@ void Text3D::bbUserSetDefaultValues() bbSetInputColour(colour); bbSetInputRenderer(NULL); bbSetInputTransform(NULL); + + _textActor = NULL; + _textProp = NULL; } //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)