]> Creatis software - bbtk.git/blob - packages/vtk/src/bbvtkText2D.cxx
5eaa9c2342c9b877e49e7100cb298fea07f9f4c7
[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 //   _textActor->GetPositionCoordinate()->SetCoordinateSystemToDisplay ();
42 //   _textActor->GetPositionCoordinate()->SetCoordinateSystemToNormalizedDisplay ();
43 //   _textActor->GetPositionCoordinate()->SetCoordinateSystemToViewport ();
44 //   _textActor->GetPositionCoordinate()->SetCoordinateSystemToNormalizedViewport ();
45 //   _textActor->GetPositionCoordinate()->SetCoordinateSystemToView ();
46 //   _textActor->GetPositionCoordinate()->SetCoordinateSystemToWorld ();
47
48
49    if (bbGetInputRenderer()!=NULL)
50    {
51       bbGetInputRenderer()->AddActor2D(_textActor);
52    }
53  }
54
55  _textActor->SetInput(bbGetInputIn().c_str());
56
57 // textActor->SetTextScaleModeToProp();
58 // textActor->SetDisplayPosition(90, 50);
59 // textActor->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport();
60
61  double px=0;
62  double py=0;
63  double spx=1;
64  double spy=1;
65  if (bbGetInputPoint().size()>=2)
66  {
67     px=bbGetInputPoint()[0];
68     py=bbGetInputPoint()[1];
69         
70     if (bbGetInputSpacing().size()>=2)
71     {
72         spx=bbGetInputSpacing()[0];
73         spy=bbGetInputSpacing()[1];
74     }    
75
76  }
77 // _textActor->SetTextScaleModeToProp();
78  _textActor->SetPosition( px*spx , py*spy );
79
80 printf("EED Text2D::Process px=%f  py=%f\n",px,py);
81
82 // _textActor->SetPosition( 150,150 );
83 // _textActor->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport();
84 // _textActor->GetPosition2Coordinate()->SetValue( 0.2 , 0.2 );
85 // textActor->GetPosition2Coordinate()->SetValue(0.6, 0.1);
86
87  vtkTextProperty *tprop = _textActor->GetTextProperty();
88  tprop->SetFontSize( bbGetInputFontSize() );
89  tprop->SetFontFamilyToArial();
90  tprop->SetJustificationToCentered();
91 // tprop->BoldOn();
92 // tprop->ItalicOn();
93 // tprop->ShadowOn();
94
95  if (bbGetInputColor().size()>=3)
96  {
97     tprop->SetColor( bbGetInputColor()[0] , bbGetInputColor()[1] , bbGetInputColor()[2] );
98  }
99
100  tprop->SetOpacity( bbGetInputOpacity() );
101   
102 }
103 //===== 
104 // 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)
105 //===== 
106 void Text2D::bbUserSetDefaultValues()
107 {
108
109 //  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
110 //    Here we initialize the input 'In' to 0
111
112  _textActor=NULL;
113  bbSetInputIn("VOID");  
114  bbSetInputOpacity(1);  
115  bbSetInputFontSize(14);  
116  std::vector<double> spc;
117  spc.push_back(1); 
118  spc.push_back(1); 
119  spc.push_back(1); 
120  bbSetInputSpacing(spc);  
121  std::vector<double> color;
122  color.push_back(0); 
123  color.push_back(0); 
124  color.push_back(1); 
125  bbSetInputColor(color);  
126
127  bbSetInputRenderer(NULL); 
128
129 }
130 //===== 
131 // 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)
132 //===== 
133 void Text2D::bbUserInitializeProcessing()
134 {
135
136 //  THE INITIALIZATION METHOD BODY :
137 //    Here does nothing 
138 //    but this is where you should allocate the internal/output pointers 
139 //    if any 
140
141   
142 }
143 //===== 
144 // 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)
145 //===== 
146 void Text2D::bbUserFinalizeProcessing()
147 {
148
149 //  THE FINALIZATION METHOD BODY :
150 //    Here does nothing 
151 //    but this is where you should desallocate the internal/output pointers 
152 //    if any
153   
154 }
155 }
156 // EO namespace bbvtk
157
158