+//=====
+// 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
+
+