]> Creatis software - bbtk.git/blobdiff - packages/std/src/bbstdMathOperationVector.cxx
Clean code
[bbtk.git] / packages / std / src / bbstdMathOperationVector.cxx
index f6d93095c482ca1dc7abe598580fc98fb8ef5721..cbd934fd015f4d523779927973fd25aa5b2eaa46 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,75 @@ 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
+
+
+    if (bbGetInputType()==23)
+       {
+               for (i=0;i<sizeVec;i++)
+               {
+                       resultVec.push_back(  round(  bbGetInputIn0()[i] )  );
+               } // for i
+               bbSetOutputOut( resultVec );
+       } // Type 23
+
+    if (bbGetInputType()==24)
+       {
+               for (i=0;i<sizeVec;i++)
+               {
+                       resultVec.push_back(  rint(  bbGetInputIn0()[i] )  );
+               } // for i
+               bbSetOutputOut( resultVec );
+       } // Type 24
+
+    if (bbGetInputType()==25)
+       {
+               for (i=0;i<sizeVec;i++)
+               {
+                       resultVec.push_back(  floor(  bbGetInputIn0()[i] )  );
+               } // for i
+               bbSetOutputOut( resultVec );
+       } // Type 25
+
+    if (bbGetInputType()==26)
+       {
+               for (i=0;i<sizeVec;i++)
+               {
+                       resultVec.push_back(  ceil(  bbGetInputIn0()[i] )  );
+               } // for i
+               bbSetOutputOut( resultVec );
+       } // Type 26
+
+    if (bbGetInputType()==27)
+       {
+               for (i=0;i<sizeVec;i++)
+               {
+                       resultVec.push_back(  trunc(  bbGetInputIn0()[i] )  );
+               } // for i
+               bbSetOutputOut( resultVec );
+       } // Type 27
+
 }
 
 //=====