]> Creatis software - bbtk.git/blob - packages/vtk/src/bbvtkTransform.cxx
bbtk now depends on crea !
[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