]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
Add an exception if the mesh is not 2d and doesn't contains only triangles
authorEl Hadi Moussi <moussi@phimeca.com>
Thu, 8 Aug 2024 16:10:29 +0000 (18:10 +0200)
committerEl Hadi Moussi <moussi@phimeca.com>
Thu, 8 Aug 2024 16:10:29 +0000 (18:10 +0200)
src/ShapeRecogn/NodesBuilder.cxx
src/ShapeRecogn/ShapeRecognMesh.cxx

index 95183cbaed7bf70d98e00f5e1cf6635fbe5f3a74..d8752f8f070843374b7fed6079c129038c03ba98 100644 (file)
@@ -44,9 +44,10 @@ void NodesBuilder::computeNormals()
     DataArrayInt64 *revNodal = DataArrayInt64::New();
     DataArrayInt64 *revNodalIdx = DataArrayInt64::New();
     mesh->getReverseNodalConnectivity(revNodal, revNodalIdx);
-    for (mcIdType nodeId = 0; nodeId < nbNodes; nodeId++)
+    for (size_t nodeId = 0; nodeId < (size_t)nbNodes; nodeId++)
     {
-        int nbCells = revNodalIdx->getIJ(nodeId + 1, 0) - revNodalIdx->getIJ(nodeId, 0);
+        int nbCells = revNodalIdx->getIJ(nodeId + 1, 0) -
+                      revNodalIdx->getIJ(nodeId, 0);
         std::vector<mcIdType> cellIds(nbCells, 0);
         int start = revNodalIdx->getIJ(nodeId, 0);
         for (size_t i = 0; i < cellIds.size(); ++i)
index 08c9a5618974b83dd45aeded11ec989ca2e742af..c6e52afeb8ace34e516cd5592e9c404a9e944c36 100644 (file)
@@ -10,7 +10,10 @@ using namespace MEDCoupling;
 ShapeRecognMesh::ShapeRecognMesh(const std::string &fileName)
 {
     mesh = ReadUMeshFromFile(fileName);
-    // TODO: check if the elements of the mesh are triangle ?
+    if (mesh->getMeshDimension() != 2)
+        throw INTERP_KERNEL::Exception("Expect a mesh with a dimension equal to 2");
+    if (mesh->getNumberOfCellsWithType(INTERP_KERNEL::NORM_TRI3) != mesh->getNumberOfCells())
+        throw INTERP_KERNEL::Exception("Expect a mesh containing exclusively triangular cells");
 }
 
 ShapeRecognMesh::~ShapeRecognMesh()