]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
Protection against division by 0. in MEDCouplingPointSet::Rotate3DAlg
authorageay <ageay>
Fri, 15 Mar 2013 06:39:41 +0000 (06:39 +0000)
committerageay <ageay>
Fri, 15 Mar 2013 06:39:41 +0000 (06:39 +0000)
src/MEDCoupling/MEDCouplingPointSet.cxx

index c83a4a642796d05217565d454860b62fc152fac7..4fc496b5f73b71f284264c9b881417e48b4f425a 100644 (file)
@@ -803,6 +803,8 @@ void MEDCouplingPointSet::Rotate3DAlg(const double *center, const double *vect,
   double matrix[9];
   double matrixTmp[9];
   double norm=sqrt(vect[0]*vect[0]+vect[1]*vect[1]+vect[2]*vect[2]);
+  if(norm<std::numeric_limits<double>::min())
+    throw INTERP_KERNEL::Exception("MEDCouplingPointSet::Rotate3DAlg : magnitude of input vector is too close of 0. !");
   std::transform(vect,vect+3,vectorNorm,std::bind2nd(std::multiplies<double>(),1/norm));
   //rotation matrix computation
   matrix[0]=cosa; matrix[1]=0.; matrix[2]=0.; matrix[3]=0.; matrix[4]=cosa; matrix[5]=0.; matrix[6]=0.; matrix[7]=0.; matrix[8]=cosa;