Salome HOME
Bug fix: BuildIntersectCells() should no try to merge points at all. Done before.
[tools/medcoupling.git] / src / INTERP_KERNEL / TetraAffineTransform.cxx
index a71ec134233c63107e60e6ba185ec267f665822c..a06e5f16facdfb7c9346ce6a03273de2a20935ef 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -62,10 +62,14 @@ namespace INTERP_KERNEL
     calculateDeterminant();
     
     LOG(3, "determinant before inverse = " << _determinant);
+
+    double ni(1./INTERP_KERNEL::normInf(_linear_transform));
+    ni = ni*ni*ni;
     
     // check that tetra is non-planar -> determinant is not zero
+    // AGY : the check to 0. must integrate the infinite norm of _linear_transform matrix.
     // otherwise set _determinant to zero to signal caller that transformation did not work
-    if(epsilonEqual(_determinant, 0.0))
+    if(epsilonEqual(ni*_determinant, 0.0))
       {
         _determinant = 0.0;
         return;