]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkTransform.cxx
*** empty log message ***
[bbtk.git] / packages / vtk / src / bbvtkTransform.cxx
diff --git a/packages/vtk/src/bbvtkTransform.cxx b/packages/vtk/src/bbvtkTransform.cxx
new file mode 100644 (file)
index 0000000..7c375f0
--- /dev/null
@@ -0,0 +1,89 @@
+#include "bbvtkTransform.h"
+#include "bbvtkPackage.h"
+
+
+namespace bbvtk
+{
+
+BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,Transform)
+BBTK_BLACK_BOX_IMPLEMENTATION(Transform,bbtk::AtomicBlackBox);
+void Transform::Process()
+{
+    if (result!=NULL)
+       {
+               result->Delete();
+       }
+       result = vtkTransform::New();
+
+
+       if (bbGetInputIn()!=NULL)
+       {
+               result->Concatenate( bbGetInputIn()->GetMatrix() );
+       }
+
+
+       if (bbGetInputScale().size()>=3)
+       {
+               result->Scale(bbGetInputScale()[0], bbGetInputScale()[1], bbGetInputScale()[2]);
+       }
+
+       if ((bbGetInputTranslate().size()>=3) && (bbGetInputSpacing().size()>=3))
+       {
+               double tx = bbGetInputTranslate()[0] * bbGetInputSpacing()[0];
+               double ty = bbGetInputTranslate()[1] * bbGetInputSpacing()[1];
+               double tz = bbGetInputTranslate()[2] * bbGetInputSpacing()[2];
+               result->Translate(tx,ty,tz);
+       }
+
+       if (bbGetInputRotateWXYZ().size()>=4)
+       {
+         result->RotateWXYZ(bbGetInputRotateWXYZ()[0],bbGetInputRotateWXYZ()[1], bbGetInputRotateWXYZ()[2], bbGetInputRotateWXYZ()[3]);
+       }
+
+       result->Update();
+
+       bbSetOutputOut(result);
+}
+
+
+void Transform::bbUserConstructor()
+{
+    bbSetInputIn(NULL);
+
+       vecScale.push_back(1);  // scale x
+       vecScale.push_back(1);  // scale y
+       vecScale.push_back(1);  // scale z
+    bbSetInputScale(vecScale);
+
+       vecRotateWXYZ.push_back(0);  //angle 
+       vecRotateWXYZ.push_back(1);  //vx
+       vecRotateWXYZ.push_back(0);  //vy
+       vecRotateWXYZ.push_back(0);  //vz
+    bbSetInputRotateWXYZ(vecRotateWXYZ);
+
+       vecTranslate.push_back(0);  //tx
+       vecTranslate.push_back(0);  //ty
+       vecTranslate.push_back(0);  //tz
+    bbSetInputTranslate(vecTranslate);
+
+       vecSpacing.push_back(1);  //spacing x
+       vecSpacing.push_back(1);  //spacing y
+       vecSpacing.push_back(1);  //spacing z
+    bbSetInputTranslate(vecSpacing);
+
+       result = NULL;  
+}
+void Transform::bbUserCopyConstructor()
+{
+  
+}
+void Transform::bbUserDestructor()
+{
+  
+}
+}
+// EO namespace bbvtk
+
+