#include "bbvtkText3D.h"
#include "bbvtkPackage.h"
-#include "vtkTextActor3D.h"
-#include "vtkTextProperty.h"
-
namespace bbvtk
{
// * 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)
//=====
// SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX
// Here we initialize the input 'In' to 0
- bbSetInputIn("<void>");
+ bbSetInputIn("<void>");
bbSetInputX(0);
bbSetInputY(0);
bbSetInputZ(0);
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)
#include "vtkProp3D.h"
#include "vtkRenderer.h"
#include "vtkLinearTransform.h"
+#include "vtkTextActor3D.h"
+#include "vtkTextProperty.h"
namespace bbvtk
BBTK_DECLARE_INPUT(Renderer,vtkRenderer*);
BBTK_DECLARE_INPUT(Transform,vtkLinearTransform*);
- BBTK_DECLARE_OUTPUT(Out,vtkProp3D*);
- BBTK_PROCESS(Process);
- void Process();
+ BBTK_DECLARE_OUTPUT(Out,vtkProp3D*);
+ BBTK_PROCESS(Process);
+ void Process();
+
+ vtkTextActor3D *_textActor;
+ vtkTextProperty *_textProp;
//=====
// 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)
//=====