1 #include "bbvtkTransform.h"
2 #include "bbvtkPackage.h"
8 BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,Transform);
9 BBTK_BLACK_BOX_IMPLEMENTATION(Transform,bbtk::AtomicBlackBox);
10 void Transform::Process()
16 result = vtkTransform::New();
19 if (bbGetInputIn()!=NULL)
21 result->Concatenate( bbGetInputIn()->GetMatrix() );
25 if (bbGetInputScale().size()>=3)
27 result->Scale(bbGetInputScale()[0], bbGetInputScale()[1], bbGetInputScale()[2]);
30 if ((bbGetInputTranslate().size()>=3) && (bbGetInputSpacing().size()>=3))
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);
38 if (bbGetInputRotateWXYZ().size()>=4)
40 result->RotateWXYZ(bbGetInputRotateWXYZ()[0],bbGetInputRotateWXYZ()[1], bbGetInputRotateWXYZ()[2], bbGetInputRotateWXYZ()[3]);
45 bbSetOutputOut(result);
49 void Transform::bbUserConstructor()
53 vecScale.push_back(1); // scale x
54 vecScale.push_back(1); // scale y
55 vecScale.push_back(1); // scale z
56 bbSetInputScale(vecScale);
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);
64 vecTranslate.push_back(0); //tx
65 vecTranslate.push_back(0); //ty
66 vecTranslate.push_back(0); //tz
67 bbSetInputTranslate(vecTranslate);
69 vecSpacing.push_back(1); //spacing x
70 vecSpacing.push_back(1); //spacing y
71 vecSpacing.push_back(1); //spacing z
72 bbSetInputTranslate(vecSpacing);
77 void Transform::bbUserCopyConstructor()
83 void Transform::bbUserDestructor()