]> Creatis software - bbtk.git/blob - packages/vtk/src/bbvtkText2D.cxx
Merge branch 'origin/master'
[bbtk.git] / packages / vtk / src / bbvtkText2D.cxx
1 //===== 
2 // 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)
3 //===== 
4 #include "bbvtkText2D.h"
5 #include "bbvtkPackage.h"
6
7 #include "vtkTextProperty.h"
8
9 namespace bbvtk
10 {
11
12 BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,Text2D)
13 BBTK_BLACK_BOX_IMPLEMENTATION(Text2D,bbtk::AtomicBlackBox);
14 //===== 
15 // 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)
16 //===== 
17 void Text2D::Process()
18 {
19
20 // THE MAIN PROCESSING METHOD BODY
21 //   Here we simply set the input 'In' value to the output 'Out'
22 //   And print out the output value
23 // INPUT/OUTPUT ACCESSORS ARE OF THE FORM :
24 //    void bbSet{Input|Output}NAME(const TYPE&)
25 //    const TYPE& bbGet{Input|Output}NAME() const 
26 //    Where :
27 //    * NAME is the name of the input/output
28 //      (the one provided in the attribute 'name' of the tag 'input')
29 //    * TYPE is the C++ type of the input/output
30 //      (the one provided in the attribute 'type' of the tag 'input')
31
32 //    bbSetOutputOut( bbGetInputIn() );
33 //    std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
34   
35
36  if (_textActor==NULL)
37  { 
38    _textActor = vtkTextActor::New();
39    _textActor->GetPositionCoordinate()->SetCoordinateSystemToWorld();
40
41    if (bbGetInputRenderer()!=NULL)
42    {
43       bbGetInputRenderer()->AddActor2D(_textActor);
44    }
45  }
46
47  _textActor->SetInput(bbGetInputIn().c_str());
48
49 // textActor->SetTextScaleModeToProp();
50 // textActor->SetDisplayPosition(90, 50);
51 // textActor->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport();
52
53  double px=0;
54  double py=0;
55  double spx=1;
56  double spy=1;
57  if (bbGetInputPoint().size()>=2)
58  {
59     px=bbGetInputPoint()[0];
60     py=bbGetInputPoint()[1];
61         
62     if (bbGetInputSpacing().size()>=2)
63     {
64         spx=bbGetInputSpacing()[0];
65         spy=bbGetInputSpacing()[1];
66     }    
67
68  }
69  _textActor->SetPosition( px*spx , py*spy );
70 // textActor->GetPosition2Coordinate()->SetValue(0.6, 0.1);
71
72  vtkTextProperty *tprop = _textActor->GetTextProperty();
73  tprop->SetFontSize( bbGetInputFontSize() );
74  tprop->SetFontFamilyToArial();
75  tprop->SetJustificationToCentered();
76 // tprop->BoldOn();
77 // tprop->ItalicOn();
78 // tprop->ShadowOn();
79
80  if (bbGetInputColor().size()>=3)
81  {
82     tprop->SetColor( bbGetInputColor()[0] , bbGetInputColor()[1] , bbGetInputColor()[2] );
83  }
84
85  tprop->SetOpacity( bbGetInputOpacity() );
86   
87 }
88 //===== 
89 // 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)
90 //===== 
91 void Text2D::bbUserSetDefaultValues()
92 {
93
94 //  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
95 //    Here we initialize the input 'In' to 0
96
97  _textActor=NULL;
98  bbSetInputIn("VOID");  
99  bbSetInputOpacity(1);  
100  bbSetInputFontSize(14);  
101  std::vector<double> spc;
102  spc.push_back(1); 
103  spc.push_back(1); 
104  spc.push_back(1); 
105  bbSetInputSpacing(spc);  
106  std::vector<double> color;
107  color.push_back(0); 
108  color.push_back(0); 
109  color.push_back(1); 
110  bbSetInputColor(color);  
111
112  bbSetInputRenderer(NULL); 
113
114 }
115 //===== 
116 // 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)
117 //===== 
118 void Text2D::bbUserInitializeProcessing()
119 {
120
121 //  THE INITIALIZATION METHOD BODY :
122 //    Here does nothing 
123 //    but this is where you should allocate the internal/output pointers 
124 //    if any 
125
126   
127 }
128 //===== 
129 // 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)
130 //===== 
131 void Text2D::bbUserFinalizeProcessing()
132 {
133
134 //  THE FINALIZATION METHOD BODY :
135 //    Here does nothing 
136 //    but this is where you should desallocate the internal/output pointers 
137 //    if any
138   
139 }
140 }
141 // EO namespace bbvtk
142
143