#include "bbvtkText2D.h"
#include "bbvtkPackage.h"
-#include "vtkTextActor.h"
#include "vtkTextProperty.h"
namespace bbvtk
// bbSetOutputOut( bbGetInputIn() );
// std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
- vtkTextActor *textActor = vtkTextActor::New();
- textActor->SetTextScaleModeToProp();
- textActor->SetDisplayPosition(90, 50);
- textActor->SetInput(bbGetInputIn().c_str());
-
- textActor->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport();
- textActor->GetPosition2Coordinate()->SetValue(0.6, 0.1);
-
- vtkTextProperty *tprop = textActor->GetTextProperty();
- tprop->SetFontSize(18);
- tprop->SetFontFamilyToArial();
- tprop->SetJustificationToCentered();
-// tprop->BoldOn();
-// tprop->ItalicOn();
-// tprop->ShadowOn();
- tprop->SetColor(0, 0, 1);
-
- bbGetInputRenderer()->AddActor2D(textActor);
+
+ if (_textActor==NULL)
+ {
+ _textActor = vtkTextActor::New();
+ _textActor->GetPositionCoordinate()->SetCoordinateSystemToWorld();
+
+// _textActor->GetPositionCoordinate()->SetCoordinateSystemToDisplay ();
+// _textActor->GetPositionCoordinate()->SetCoordinateSystemToNormalizedDisplay ();
+// _textActor->GetPositionCoordinate()->SetCoordinateSystemToViewport ();
+// _textActor->GetPositionCoordinate()->SetCoordinateSystemToNormalizedViewport ();
+// _textActor->GetPositionCoordinate()->SetCoordinateSystemToView ();
+// _textActor->GetPositionCoordinate()->SetCoordinateSystemToWorld ();
+
+
+ if (bbGetInputRenderer()!=NULL)
+ {
+ bbGetInputRenderer()->AddActor2D(_textActor);
+ }
+ }
+
+ _textActor->SetInput(bbGetInputIn().c_str());
+
+// textActor->SetTextScaleModeToProp();
+// textActor->SetDisplayPosition(90, 50);
+// textActor->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport();
+
+ double px=0;
+ double py=0;
+ double spx=1;
+ double spy=1;
+ if (bbGetInputPoint().size()>=2)
+ {
+ px=bbGetInputPoint()[0];
+ py=bbGetInputPoint()[1];
+
+ if (bbGetInputSpacing().size()>=2)
+ {
+ spx=bbGetInputSpacing()[0];
+ spy=bbGetInputSpacing()[1];
+ }
+
+ }
+// _textActor->SetTextScaleModeToProp();
+ _textActor->SetPosition( px*spx , py*spy );
+
+// _textActor->SetPosition( 150,150 );
+// _textActor->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport();
+// _textActor->GetPosition2Coordinate()->SetValue( 0.2 , 0.2 );
+// textActor->GetPosition2Coordinate()->SetValue(0.6, 0.1);
+
+ vtkTextProperty *tprop = _textActor->GetTextProperty();
+ tprop->SetFontSize( bbGetInputFontSize() );
+ tprop->SetFontFamilyToArial();
+ tprop->SetJustificationToCentered();
+ if (bbGetInputFontBold()==true) tprop->BoldOn(); else tprop->BoldOff();
+ if (bbGetInputFontItalic()==true) tprop->ItalicOn(); else tprop->ItalicOff();
+ if (bbGetInputFontShadow()==true) tprop->ShadowOn(); else tprop->ShadowOff();
+ if (bbGetInputColor().size()>=3)
+ {
+ tprop->SetColor( bbGetInputColor()[0] , bbGetInputColor()[1] , bbGetInputColor()[2] );
+ }
+ tprop->SetOpacity( bbGetInputOpacity() );
}
//=====
//=====
void Text2D::bbUserSetDefaultValues()
{
-
// SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX
// Here we initialize the input 'In' to 0
- bbSetInputIn("VOID");
+ _textActor=NULL;
+ bbSetInputIn("VOID");
+ bbSetInputOpacity(1);
+ bbSetInputFontSize(14);
+ bbSetInputFontBold(false);
+ bbSetInputFontItalic(false);
+ bbSetInputFontShadow(false);
+ std::vector<double> spc;
+ spc.push_back(1);
+ spc.push_back(1);
+ spc.push_back(1);
+ bbSetInputSpacing(spc);
+ std::vector<double> color;
+ color.push_back(0);
+ color.push_back(0);
+ color.push_back(1);
+ bbSetInputColor(color);
+ bbSetInputRenderer(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)