]> Creatis software - bbtk.git/blobdiff - packages/std/src/bbstdMathOperationVector.cxx
#3438 BBTK Feature New Normal - bbstdMathOperationVector add Center Mass
[bbtk.git] / packages / std / src / bbstdMathOperationVector.cxx
index f6d93095c482ca1dc7abe598580fc98fb8ef5721..b3633ad0ee2f11bf1af68d0547eee55b58fe81a0 100644 (file)
@@ -116,8 +116,8 @@ void MathOperationVector::Process()
        std::vector<double> *v8 = &_v8;
        std::vector<double> *v9 = &_v9;
 
-       double minTmp;          
-       double maxTmp;          
+       double minTmp;
+       double maxTmp;
 
         if (firsttime==true)
         {
@@ -445,6 +445,31 @@ void MathOperationVector::Process()
                bbSetOutputOut( resultVec );
        } // Type 21
 
+
+    if (bbGetInputType()==22) 
+       {
+               double resultX=0;
+               double resultY=0;
+               double resultZ=0;
+               double resultMassTotal=0;
+               for (i=0;i<sizeVec;i++)
+               {
+                       resultX                 = resultX + g(v0,i,0)*g(v3,i,1);
+                       resultY                 = resultY + g(v1,i,0)*g(v3,i,1);
+                       resultZ                 = resultZ + g(v2,i,0)*g(v3,i,1);
+                       resultMassTotal = resultMassTotal + g(v3,i,1);
+               } // for i
+               if (resultMassTotal!=0) 
+               {
+                       resultVec.push_back( resultX / resultMassTotal );
+                       resultVec.push_back( resultY / resultMassTotal );
+                       resultVec.push_back( resultZ / resultMassTotal );
+               } // if resultMassTotal
+               bbSetOutputOut( resultVec );
+       } // if Type 22
+
+
+
 }
 
 //=====