Salome HOME
Attempt of Management of profiles in spliter
[tools/medcoupling.git] / src / INTERP_KERNEL / SplitterTetra.txx
index 9700e9ab643d64ef0c0b98b3bbdac89f1d48c9cb..83b2628f9840640d53cfd9c89ea1502bc60332b6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  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
@@ -252,7 +252,8 @@ namespace INTERP_KERNEL
                 faceType = cellModelCell.getSonType(ii);
                 const CellModel& faceModel=CellModel::GetCellModel(faceType);
                 assert(faceModel.getDimension() == 2);
-                faceNodes=new int[faceModel.getNumberOfNodes()];      
+                nbFaceNodes = cellModelCell.getNumberOfNodesConstituentTheSon(ii);
+                faceNodes = new int[nbFaceNodes];
                 cellModelCell.fillSonCellNodalConnectivity(ii,cellNodes,faceNodes);
               }
             // intersect a son with the unit tetra
@@ -393,7 +394,6 @@ namespace INTERP_KERNEL
   {
     typedef typename MyMeshType::MyConnType ConnType;
     typedef double Vect2[2];
-    typedef double Vect3[3];
     typedef double Triangle2[3][2];
 
     const double *const tri0[3] = {p1, p2, p3};
@@ -597,8 +597,6 @@ namespace INTERP_KERNEL
                                                         std::multiset<TriangleFaceKey>& listOfTetraFacesTreated,
                                                         std::set<TriangleFaceKey>& listOfTetraFacesColinear)
   {
-    typedef typename MyMeshType::MyConnType ConnType;
-
     double totalSurface = 0.0;
 
     // check if we have planar tetra element
@@ -1110,7 +1108,7 @@ namespace INTERP_KERNEL
   {
     // The two nodes of the original mesh cell used in each tetrahedron.
     // The tetrahedra all have nodes (cellCenter, faceCenter, edgeNode1, edgeNode2)
-    // For the correspondance of the nodes, see the GENERAL_48_SUB_NODES table in calculateSubNodes
+    // For the correspondence of the nodes, see the GENERAL_48_SUB_NODES table in calculateSubNodes
     
     // nodes to use for tetrahedron
     const double* nodes[4];
@@ -1212,6 +1210,8 @@ namespace INTERP_KERNEL
     while ( allNodeIndices.size() < nbOfCellNodes )
       allNodeIndices.push_back( allNodeIndices.size() );
     std::vector<int> classicFaceNodes(4);
+    if(cellModelCell.isQuadratic())
+      throw INTERP_KERNEL::Exception("SplitterTetra2::splitConvex : quadratic 3D cells are not implemented yet !");
     int* faceNodes = cellModelCell.isDynamic() ? &allNodeIndices[0] : &classicFaceNodes[0];
 
     // nodes of tetrahedron