X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FINTERP_KERNEL%2FTetraAffineTransform.cxx;h=3952c4ba0c7f0a63a4888ea6fb62d38507288ea7;hb=714ec20d9675ab2c7d5530ae57656635def4e30f;hp=be3b8090e33600706e25d73a36d1d93b7ddf1eac;hpb=5da72d398d0eb1820c3ce6dd90b8579b6b14edf5;p=tools%2Fmedcoupling.git diff --git a/src/INTERP_KERNEL/TetraAffineTransform.cxx b/src/INTERP_KERNEL/TetraAffineTransform.cxx index be3b8090e..3952c4ba0 100644 --- a/src/INTERP_KERNEL/TetraAffineTransform.cxx +++ b/src/INTERP_KERNEL/TetraAffineTransform.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D +// Copyright (C) 2007-2019 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 @@ -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;