]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkText2D.cxx
#3486 box vtkTransform nomalize the input vector
[bbtk.git] / packages / vtk / src / bbvtkText2D.cxx
index a36e4d34cc5f1eccb34d255f7e48add279cdf990..d270826b6dba813423a4307465dd0607377ff6f9 100644 (file)
@@ -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 = " <<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() );
   
 }
 //===== 
@@ -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<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)