X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkText2D.cxx;h=d270826b6dba813423a4307465dd0607377ff6f9;hb=71910b305dd5400b76c32efd40b367390b8a7a93;hp=a36e4d34cc5f1eccb34d255f7e48add279cdf990;hpb=757a189b6ce998d5da17f49504a140c03d4feeff;p=bbtk.git diff --git a/packages/vtk/src/bbvtkText2D.cxx b/packages/vtk/src/bbvtkText2D.cxx index a36e4d3..d270826 100644 --- a/packages/vtk/src/bbvtkText2D.cxx +++ b/packages/vtk/src/bbvtkText2D.cxx @@ -4,7 +4,6 @@ #include "bbvtkText2D.h" #include "bbvtkPackage.h" -#include "vtkTextActor.h" #include "vtkTextProperty.h" namespace bbvtk @@ -33,24 +32,68 @@ void Text2D::Process() // bbSetOutputOut( bbGetInputIn() ); // std::cout << "Output value = " <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() ); } //===== @@ -58,10 +101,26 @@ void Text2D::Process() //===== 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 spc; + spc.push_back(1); + spc.push_back(1); + spc.push_back(1); + bbSetInputSpacing(spc); + std::vector 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)