]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkText2D.cxx
2391 BBTK Feature New Normal box castVector in std package
[bbtk.git] / packages / vtk / src / bbvtkText2D.cxx
index a36e4d34cc5f1eccb34d255f7e48add279cdf990..5eaa9c2342c9b877e49e7100cb298fea07f9f4c7 100644 (file)
@@ -4,7 +4,6 @@
 #include "bbvtkText2D.h"
 #include "bbvtkPackage.h"
 
-#include "vtkTextActor.h"
 #include "vtkTextProperty.h"
 
 namespace bbvtk
@@ -33,24 +32,72 @@ 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);
+ if (_textActor==NULL)
+ { 
+   _textActor = vtkTextActor::New();
+   _textActor->GetPositionCoordinate()->SetCoordinateSystemToWorld();
 
- vtkTextProperty *tprop = textActor->GetTextProperty();
- tprop->SetFontSize(18);
+//   _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 );
+
+printf("EED Text2D::Process px=%f  py=%f\n",px,py);
+
+// _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();
 // tprop->BoldOn();
 // tprop->ItalicOn();
 // tprop->ShadowOn();
- tprop->SetColor(0, 0, 1);
 
- bbGetInputRenderer()->AddActor2D(textActor);
+ if (bbGetInputColor().size()>=3)
+ {
+    tprop->SetColor( bbGetInputColor()[0] , bbGetInputColor()[1] , bbGetInputColor()[2] );
+ }
+
+ tprop->SetOpacity( bbGetInputOpacity() );
   
 }
 //===== 
@@ -61,7 +108,24 @@ void Text2D::bbUserSetDefaultValues()
 
 //  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
 //    Here we initialize the input 'In' to 0
+
+ _textActor=NULL;
  bbSetInputIn("VOID");  
+ bbSetInputOpacity(1);  
+ bbSetInputFontSize(14);  
+ 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)