Salome HOME
EDF11242 : non regression test.
[tools/medcoupling.git] / src / MEDLoader / SauvMedConvertor.cxx
index ad4668c12f7bcdde5c333929de3eda18b14bf7e0..28a54e390f0a7d210e5ae38f8f54e529fdf3e63e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2015  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
@@ -2683,42 +2683,43 @@ void IntermediateMED::orientElements2D()
       // --------------------------
       // orient faces clockwise
       // --------------------------
-      int iQuad = isQuadratic ? 2 : 1;
-      for ( elemIt = faces->begin(), elemEnd = faces->end(); elemIt != elemEnd; elemIt++ )
-        {
-          // look for index of the most left node
-          int iLeft = 0, iNode, nbNodes = elemIt->_nodes.size() / iQuad;
-          double x, minX = nodeCoords( elemIt->_nodes[0] )[0];
-          for ( iNode = 1; iNode < nbNodes; ++iNode )
-            if (( x = nodeCoords( elemIt->_nodes[ iNode ])[ 0 ]) < minX )
-              minX = x, iLeft = iNode;
-
-          // indeces of the nodes neighboring the most left one
-          int iPrev = ( iLeft - 1 < 0 ) ? nbNodes - 1 : iLeft - 1;
-          int iNext = ( iLeft + 1 == nbNodes ) ? 0 : iLeft + 1;
-          // find components of prev-left and left-next vectors
-          double xP = nodeCoords( elemIt->_nodes[ iPrev ])[ 0 ];
-          double yP = nodeCoords( elemIt->_nodes[ iPrev ])[ 1 ];
-          double xN = nodeCoords( elemIt->_nodes[ iNext ])[ 0 ];
-          double yN = nodeCoords( elemIt->_nodes[ iNext ])[ 1 ];
-          double xL = nodeCoords( elemIt->_nodes[ iLeft ])[ 0 ];
-          double yL = nodeCoords( elemIt->_nodes[ iLeft ])[ 1 ];
-          double xPL = xL - xP, yPL = yL - yP; // components of prev-left vector
-          double xLN = xN - xL, yLN = yN - yL; // components of left-next vector
-          // normalise y of the vectors
-          double modPL = sqrt ( xPL * xPL + yPL * yPL );
-          double modLN = sqrt ( xLN * xLN + yLN * yLN );
-          if ( modLN > std::numeric_limits<double>::min() &&
-               modPL > std::numeric_limits<double>::min() )
-            {
-              yPL /= modPL;
-              yLN /= modLN;
-              // summary direction of neighboring links must be positive
-              bool clockwise = ( yPL + yLN > 0 );
-              if ( !clockwise )
-                reverse( *elemIt, swapVec );
-            }
-        }
+      // COMMENTED for issue 0022612 note 17739
+      // int iQuad = isQuadratic ? 2 : 1;
+      // for ( elemIt = faces->begin(), elemEnd = faces->end(); elemIt != elemEnd; elemIt++ )
+      //   {
+      //     // look for index of the most left node
+      //     int iLeft = 0, iNode, nbNodes = elemIt->_nodes.size() / iQuad;
+      //     double x, minX = nodeCoords( elemIt->_nodes[0] )[0];
+      //     for ( iNode = 1; iNode < nbNodes; ++iNode )
+      //       if (( x = nodeCoords( elemIt->_nodes[ iNode ])[ 0 ]) < minX )
+      //         minX = x, iLeft = iNode;
+
+      //     // indeces of the nodes neighboring the most left one
+      //     int iPrev = ( iLeft - 1 < 0 ) ? nbNodes - 1 : iLeft - 1;
+      //     int iNext = ( iLeft + 1 == nbNodes ) ? 0 : iLeft + 1;
+      //     // find components of prev-left and left-next vectors
+      //     double xP = nodeCoords( elemIt->_nodes[ iPrev ])[ 0 ];
+      //     double yP = nodeCoords( elemIt->_nodes[ iPrev ])[ 1 ];
+      //     double xN = nodeCoords( elemIt->_nodes[ iNext ])[ 0 ];
+      //     double yN = nodeCoords( elemIt->_nodes[ iNext ])[ 1 ];
+      //     double xL = nodeCoords( elemIt->_nodes[ iLeft ])[ 0 ];
+      //     double yL = nodeCoords( elemIt->_nodes[ iLeft ])[ 1 ];
+      //     double xPL = xL - xP, yPL = yL - yP; // components of prev-left vector
+      //     double xLN = xN - xL, yLN = yN - yL; // components of left-next vector
+      //     // normalise y of the vectors
+      //     double modPL = sqrt ( xPL * xPL + yPL * yPL );
+      //     double modLN = sqrt ( xLN * xLN + yLN * yLN );
+      //     if ( modLN > std::numeric_limits<double>::min() &&
+      //          modPL > std::numeric_limits<double>::min() )
+      //       {
+      //         yPL /= modPL;
+      //         yLN /= modLN;
+      //         // summary direction of neighboring links must be positive
+      //         bool clockwise = ( yPL + yLN > 0 );
+      //         if ( !clockwise )
+      //           reverse( *elemIt, swapVec );
+      //       }
+      //   }
     }
 }
 
@@ -2731,7 +2732,8 @@ void IntermediateMED::orientElements2D()
 void IntermediateMED::orientElements3D()
 {
   // set _reverse flags of faces
-  orientFaces3D();
+  // COMMENTED for issue 0022612 note 17739
+  //orientFaces3D();
 
   // -----------------
   // fix connectivity
@@ -2763,7 +2765,8 @@ void IntermediateMED::orientElements3D()
     }
   }
 
-  orientVolumes();
+  // COMMENTED for issue 0022612 note 17739
+  //orientVolumes();
 }
 
 //================================================================================
@@ -3238,10 +3241,10 @@ void IntermediateMED::setGroups( ParaMEDMEM::MEDFileUMesh* mesh )
           grp._medGroup = DataArrayInt::New();
           grp._medGroup->setName( grp._name.c_str() );
           grp._medGroup->alloc( cell2order.size(), /*nbOfCompo=*/1 );
-          int * idsPrt = grp._medGroup->getPointer();
+          int * idsPtr = grp._medGroup->getPointer();
           TCellToOrderMap::iterator cell2orderIt, cell2orderEnd = cell2order.end();
           for ( cell2orderIt = cell2order.begin(); cell2orderIt != cell2orderEnd; ++cell2orderIt )
-            *idsPrt++ = (*cell2orderIt).first->_number - 1;
+            *idsPtr++ = (*cell2orderIt).first->_number - 1;
 
           // try to set the mesh name
           if ( !isMeshNameSet &&
@@ -3457,8 +3460,9 @@ void IntermediateMED::setTS( SauvUtilities::DoubleField*  fld,
   // set gauss points
   if ( timeStamp->getTypeOfField() == ParaMEDMEM::ON_GAUSS_PT )
     {
-      TGaussDef gaussDef( support->_cellType, fld->_sub[iSub].nbGauss() );
-      timeStamp->setGaussLocalizationOnType( support->_cellType,
+      TGaussDef gaussDef( fld->_sub[iSub]._support->_cellType,
+                          fld->_sub[iSub].nbGauss() );
+      timeStamp->setGaussLocalizationOnType( fld->_sub[iSub]._support->_cellType,
                                              gaussDef.myRefCoords,
                                              gaussDef.myCoords,
                                              gaussDef.myWeights );