]> Creatis software - bbtk.git/blob - packages/vtk/src/bbvtkTransform.h
bbtk now depends on crea !
[bbtk.git] / packages / vtk / src / bbvtkTransform.h
1 #ifndef __bbvtkTransform_h_INCLUDED__
2 #define __bbvtkTransform_h_INCLUDED__
3 #include "bbtkAtomicBlackBox.h"
4 #include "iostream"
5
6 #include <vtkTransform.h>
7 #include <vtkLinearTransform.h>
8
9 namespace bbvtk
10 {
11   
12   class /*BBTK_EXPORT*/ Transform
13     : 
14     public bbtk::AtomicBlackBox
15   {
16     BBTK_BLACK_BOX_INTERFACE(Transform,bbtk::AtomicBlackBox);
17     //==================================================================
18     /// User callback called in the box contructor
19     virtual void bbUserConstructor();
20     /// User callback called in the box copy constructor
21     //virtual void bbUserCopyConstructor();
22     /// User callback called in the box destructor
23     virtual void bbUserDestructor();
24     //==================================================================
25     BBTK_DECLARE_INPUT(In,vtkLinearTransform *);
26     BBTK_DECLARE_INPUT(Scale,std::vector<double>);
27     BBTK_DECLARE_INPUT(RotateWXYZ,std::vector<double>);
28     BBTK_DECLARE_INPUT(Translate,std::vector<double>);
29     BBTK_DECLARE_INPUT(Spacing,std::vector<double>);
30     BBTK_DECLARE_OUTPUT(Out,vtkLinearTransform *);
31     BBTK_PROCESS(Process);
32     void Process();
33     
34     std::vector<double> vecScale;
35     std::vector<double> vecRotateWXYZ;
36     std::vector<double> vecTranslate;
37     std::vector<double> vecSpacing;
38     vtkTransform                        *result; 
39 };
40   
41   BBTK_BEGIN_DESCRIBE_BLACK_BOX(Transform,bbtk::AtomicBlackBox);
42   BBTK_NAME("Transform");
43   BBTK_AUTHOR("InfoTeam CREATIS-LRMN");
44   BBTK_DESCRIPTION("vtkTransform");
45   BBTK_CATEGORY("math");
46   BBTK_INPUT(Transform,In,"vtkTransform to be concatenate",vtkLinearTransform *,"");
47   BBTK_INPUT(Transform,Scale,"vector with sx sy sz",std::vector<double>,"");
48   BBTK_INPUT(Transform,Translate,"vector with x y z",std::vector<double>,"");
49   BBTK_INPUT(Transform,Spacing,"vector with spacingX spacingY spacingZ",std::vector<double>,"");
50   BBTK_INPUT(Transform,RotateWXYZ,"vector with Angle Vx Vy Vz",std::vector<double>,"");
51   BBTK_OUTPUT(Transform,Out,"vtkTransform result",vtkLinearTransform *,"");
52   BBTK_END_DESCRIBE_BLACK_BOX(Transform);
53 }
54 // EO namespace bbvtk
55
56 #endif // __bbvtkTransform_h_INCLUDED__
57