]> Creatis software - bbtk.git/blob - packages/vtk/src/bbvtkTransform.cxx
*** empty log message ***
[bbtk.git] / packages / vtk / src / bbvtkTransform.cxx
1 #include "bbvtkTransform.h"
2 #include "bbvtkPackage.h"
3
4
5 namespace bbvtk
6 {
7
8   BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,Transform);
9   BBTK_BLACK_BOX_IMPLEMENTATION(Transform,bbtk::AtomicBlackBox);
10   void Transform::Process()
11   {
12     if (result!=NULL)
13       {
14         result->Delete();
15       }
16     result = vtkTransform::New();
17     
18     
19     if (bbGetInputIn()!=NULL)
20       {
21         result->Concatenate( bbGetInputIn()->GetMatrix() );
22       }
23     
24     
25     if (bbGetInputScale().size()>=3)
26       {
27         result->Scale(bbGetInputScale()[0], bbGetInputScale()[1], bbGetInputScale()[2]);
28       }
29     
30     if ((bbGetInputTranslate().size()>=3) && (bbGetInputSpacing().size()>=3))
31       {
32         double tx = bbGetInputTranslate()[0] * bbGetInputSpacing()[0];
33         double ty = bbGetInputTranslate()[1] * bbGetInputSpacing()[1];
34         double tz = bbGetInputTranslate()[2] * bbGetInputSpacing()[2];
35         result->Translate(tx,ty,tz);
36       }
37     
38     if (bbGetInputRotateWXYZ().size()>=4)
39       {
40         result->RotateWXYZ(bbGetInputRotateWXYZ()[0],bbGetInputRotateWXYZ()[1], bbGetInputRotateWXYZ()[2], bbGetInputRotateWXYZ()[3]);
41       }
42     
43     result->Update();
44     
45     bbSetOutputOut(result);
46   }
47   
48   
49   void Transform::bbUserConstructor()
50   {
51     bbSetInputIn(NULL);
52     
53     vecScale.push_back(1);  // scale x
54     vecScale.push_back(1);  // scale y
55     vecScale.push_back(1);  // scale z
56     bbSetInputScale(vecScale);
57     
58     vecRotateWXYZ.push_back(0);  //angle 
59     vecRotateWXYZ.push_back(1);  //vx
60     vecRotateWXYZ.push_back(0);  //vy
61     vecRotateWXYZ.push_back(0);  //vz
62     bbSetInputRotateWXYZ(vecRotateWXYZ);
63     
64     vecTranslate.push_back(0);  //tx
65     vecTranslate.push_back(0);  //ty
66     vecTranslate.push_back(0);  //tz
67     bbSetInputTranslate(vecTranslate);
68     
69     vecSpacing.push_back(1);  //spacing x
70     vecSpacing.push_back(1);  //spacing y
71     vecSpacing.push_back(1);  //spacing z
72     bbSetInputTranslate(vecSpacing);
73     
74     result = NULL;  
75   }
76   /*
77     void Transform::bbUserCopyConstructor()
78     {
79     
80     
81     }
82   */
83   void Transform::bbUserDestructor()
84   {
85     
86     
87   }
88 }
89 // EO namespace bbvtk
90
91