]> Creatis software - creaVtk.git/blobdiff - bbtk_creaVtk_PKG/src/bbcreaVtkTransformVector.cxx
#2811 creaVtk Feature New Normal - Concat Transform ImageAccumulate TransformVector
[creaVtk.git] / bbtk_creaVtk_PKG / src / bbcreaVtkTransformVector.cxx
diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkTransformVector.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkTransformVector.cxx
new file mode 100644 (file)
index 0000000..730b9db
--- /dev/null
@@ -0,0 +1,122 @@
+//===== 
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//===== 
+#include "bbcreaVtkTransformVector.h"
+#include "bbcreaVtkPackage.h"
+namespace bbcreaVtk
+{
+
+BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaVtk,TransformVector)
+BBTK_BLACK_BOX_IMPLEMENTATION(TransformVector,bbtk::AtomicBlackBox);
+//===== 
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//===== 
+void TransformVector::Process()
+{
+
+// THE MAIN PROCESSING METHOD BODY
+//   Here we simply set the input 'In' value to the output 'Out'
+//   And print out the output value
+// INPUT/OUTPUT ACCESSORS ARE OF THE FORM :
+//    void bbSet{Input|Output}NAME(const TYPE&)
+//    const TYPE& bbGet{Input|Output}NAME() const 
+//    Where :
+//    * NAME is the name of the input/output
+//      (the one provided in the attribute 'name' of the tag 'input')
+//    * TYPE is the C++ type of the input/output
+//      (the one provided in the attribute 'type' of the tag 'input')
+
+//    bbSetOutputOut( bbGetInputIn() );
+//    std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
+  
+       double tmpA[3];
+       double *tmpB;
+       unsigned int i;
+       unsigned int XSize=bbGetInputInX().size();
+       unsigned int YSize=bbGetInputInY().size();
+       unsigned int ZSize=bbGetInputInZ().size();
+
+       std::vector<double> xVec;
+       std::vector<double> yVec;
+       std::vector<double> zVec;
+
+printf("TransformVector::Process  START\n" );
+       
+       bool ok=true;
+       if ((XSize!=YSize) || (XSize!=ZSize) )
+       {
+               ok=false;
+               printf("ERROR. TransformVector: The size of the tree vectors are not the same!\n");
+       }
+
+
+       if (ok==true)
+       {       
+               if (bbGetInputTransform()!=NULL) { bbGetInputTransform()->Update(); }
+               for(i=0;i<XSize;i++)
+               {
+                       tmpA[0]=bbGetInputInX()[i];
+                       tmpA[1]=bbGetInputInY()[i];
+                       tmpA[2]=bbGetInputInZ()[i];
+
+                       if (bbGetInputTransform()!=NULL)
+                       {
+                               tmpB=bbGetInputTransform()->TransformDoublePoint(tmpA);                 
+                               xVec.push_back( tmpB[0] );
+                               yVec.push_back( tmpB[1] );
+                               zVec.push_back( tmpB[2] );
+                       } else {
+                               printf("WARNNIG. TransformVector: The Transform is not set!\n");
+                               xVec.push_back( tmpA[0] );
+                               yVec.push_back( tmpA[1] );
+                               zVec.push_back( tmpA[2] );
+                       } // if Transform
+               }// for i
+       } // if ok
+       bbSetOutputOutX(xVec);
+       bbSetOutputOutY(yVec);
+       bbSetOutputOutZ(zVec);
+
+printf("TransformVector::Process  END\n" );
+
+}
+//===== 
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//===== 
+void TransformVector::bbUserSetDefaultValues()
+{
+
+//  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
+//    Here we initialize the input 'In' to 0
+   bbSetInputTransform(NULL);
+  
+}
+//===== 
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//===== 
+void TransformVector::bbUserInitializeProcessing()
+{
+
+//  THE INITIALIZATION METHOD BODY :
+//    Here does nothing 
+//    but this is where you should allocate the internal/output pointers 
+//    if any 
+
+  
+}
+//===== 
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//===== 
+void TransformVector::bbUserFinalizeProcessing()
+{
+
+//  THE FINALIZATION METHOD BODY :
+//    Here does nothing 
+//    but this is where you should desallocate the internal/output pointers 
+//    if any
+  
+}
+}
+// EO namespace bbcreaVtk
+
+