From dae888c0a16229bdb9dbcfaff41d61097a0dea83 Mon Sep 17 00:00:00 2001 From: nadir Date: Mon, 8 Dec 2003 13:17:01 +0000 Subject: [PATCH] Just adding debug infos and removing printing infos for the debugging !! --- src/SMESH/SMESH_MEFISTO_2D.cxx | 15 +++--- src/SMESH/SMESH_NETGEN_3D.cxx | 97 ++++++++++++++++++++++++---------- src/SMESH/SMESH_subMesh.cxx | 48 +++++++++++++++++ 3 files changed, 125 insertions(+), 35 deletions(-) diff --git a/src/SMESH/SMESH_MEFISTO_2D.cxx b/src/SMESH/SMESH_MEFISTO_2D.cxx index ffd212d06..88257be18 100644 --- a/src/SMESH/SMESH_MEFISTO_2D.cxx +++ b/src/SMESH/SMESH_MEFISTO_2D.cxx @@ -259,14 +259,15 @@ bool SMESH_MEFISTO_2D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape) nblf, nudslf, uvslf, nbpti, uvpti, nbst, uvst, nbt, nust, ierr); if (ierr == 0) - { - MESSAGE("... End Triangulation"); - //SCRUTE(nbst); - //SCRUTE(nbt); - StoreResult(aMesh, nbst, uvst, nbt, nust, F, + { + MESSAGE("... End Triangulation Generated Triangle Number " << nbt); + MESSAGE(" Node Number " << nbst); + //SCRUTE(nbst); + //SCRUTE(nbt); + StoreResult(aMesh, nbst, uvst, nbt, nust, F, faceIsForward, mefistoToDS); - isOk = true; - } + isOk = true; + } else { MESSAGE("Error in Triangulation"); diff --git a/src/SMESH/SMESH_NETGEN_3D.cxx b/src/SMESH/SMESH_NETGEN_3D.cxx index 2c9de3b88..a7fc6d04c 100644 --- a/src/SMESH/SMESH_NETGEN_3D.cxx +++ b/src/SMESH/SMESH_NETGEN_3D.cxx @@ -213,11 +213,11 @@ bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh, { index++; const SMDS_MeshNode * node = iteratorNodes->next(); - int nodeId = node->GetID(); - double nodeX = node->X(); - double nodeY = node->Y(); - double nodeZ = node->Z(); - MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); +// int nodeId = node->GetID(); +// double nodeX = node->X(); +// double nodeY = node->Y(); +// double nodeZ = node->Z(); +// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); } delete iteratorNodes; @@ -227,6 +227,7 @@ bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh, SCRUTE(nbTria); index = 0; + int numberOfDegeneratedTriangle = 0; while(iteratorTriangle->more()) { index++; @@ -235,18 +236,58 @@ bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh, SMDS_Iterator * triangleNodesIt = triangle->nodesIterator(); - int triangleNode1 = (triangleNodesIt->next())->GetID(); - int triangleNode2 = (triangleNodesIt->next())->GetID(); - int triangleNode3 = (triangleNodesIt->next())->GetID(); + const SMDS_MeshNode * node1 = static_cast(triangleNodesIt->next()); + double node1X = node1->X(); + double node1Y = node1->Y(); + double node1Z = node1->Z(); - MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3); + const SMDS_MeshNode * node2 = static_cast(triangleNodesIt->next()); + double node2X = node2->X(); + double node2Y = node2->Y(); + double node2Z = node2->Z(); + const SMDS_MeshNode * node3 = static_cast(triangleNodesIt->next()); + double node3X = node3->X(); + double node3Y = node3->Y(); + double node3Z = node3->Z(); + + int triangleNode1 = node1->GetID(); + int triangleNode2 = node2->GetID(); + int triangleNode3 = node3->GetID(); + + // Compute the triangle surface + + double vect1 = ((node2Y - node1Y)*(node3Z - node1Z) - (node2Z - node1Z)*(node3Y - node1Y)); + double vect2 = - ((node2X - node1X)*(node3Z - node1Z) - (node2Z - node1Z)*(node3X - node1X)); + double vect3 = ((node2X - node1X)*(node3Y - node1Y) - (node2Y - node1Y)*(node3X - node1X)); + double epsilon = 1.0e-6; + + bool triangleIsDegenerated = ((abs(vect1) ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3 << " is degenerated"); +// MESSAGE("NODE -> ID = " << triangleNode1 << " X = " << node1X << " Y = " << node1Y << " Z = " << node1Z); +// MESSAGE("NODE -> ID = " << triangleNode2 << " X = " << node2X << " Y = " << node2Y << " Z = " << node2Z); +// MESSAGE("NODE -> ID = " << triangleNode3 << " X = " << node3X << " Y = " << node3Y << " Z = " << node3Z); + numberOfDegeneratedTriangle++; + } + else + { +// MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3 << " is normal"); + } } + delete iteratorTriangle; + if (numberOfDegeneratedTriangle > 0) + MESSAGE("WARNING THERE IS(ARE) " << numberOfDegeneratedTriangle << " degenerated triangle on this face"); + SCRUTE(index); } + + SCRUTE(NbTotOfTria); SCRUTE(NbTotOfNodesFaces); @@ -305,12 +346,12 @@ bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh, while(iteratorNodes->more()) { index++; - const SMDS_MeshNode * node = iteratorNodes->next(); - int nodeId = node->GetID(); - double nodeX = node->X(); - double nodeY = node->Y(); - double nodeZ = node->Z(); - MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); + const SMDS_MeshNode * node = iteratorNodes->next(); +// int nodeId = node->GetID(); +// double nodeX = node->X(); +// double nodeY = node->Y(); +// double nodeZ = node->Z(); +// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); } delete iteratorNodes; @@ -361,12 +402,12 @@ bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh, while(iteratorNodes->more()) { index++; - const SMDS_MeshNode * node = iteratorNodes->next(); - int nodeId = node->GetID(); - double nodeX = node->X(); - double nodeY = node->Y(); - double nodeZ = node->Z(); - MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); + const SMDS_MeshNode * node = iteratorNodes->next(); +// int nodeId = node->GetID(); +// double nodeX = node->X(); +// double nodeY = node->Y(); +// double nodeZ = node->Z(); +// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); } delete iteratorNodes; @@ -455,7 +496,7 @@ bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh, double nodeX = node->X(); double nodeY = node->Y(); double nodeZ = node->Z(); - MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); +// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); listNodeCoresNetgenSmesh[indexNodes] = nodeId; int index = indexNodes*spaceDimension; Netgen_Coordinates[index] = nodeX; @@ -481,7 +522,7 @@ bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh, double nodeX = node->X(); double nodeY = node->Y(); double nodeZ = node->Z(); - MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); +// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); listNodeCoresNetgenSmesh[indexNodes] = node->GetID(); int index = indexNodes*spaceDimension; Netgen_Coordinates[index] = node->X(); @@ -507,7 +548,7 @@ bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh, double nodeX = node->X(); double nodeY = node->Y(); double nodeZ = node->Z(); - MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); +// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); listNodeCoresNetgenSmesh[indexNodes] = nodeId; int index = indexNodes*spaceDimension; Netgen_Coordinates[index] = nodeX; @@ -563,7 +604,7 @@ bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh, int triangleNode2 = (triangleNodesIt->next())->GetID(); int triangleNode3 = (triangleNodesIt->next())->GetID(); - MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3); +// MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3); int N1New = 0; int N2New = 0; @@ -609,7 +650,7 @@ bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh, int triangleNode3 = (triangleNodesIt->next())->GetID(); int triangleNode2 = (triangleNodesIt->next())->GetID(); - MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3); +// MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3); int N1New = 0; int N2New = 0; @@ -939,7 +980,7 @@ bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh, double nodeX = node->X(); double nodeY = node->Y(); double nodeZ = node->Z(); - MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); +// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); } delete iteratorNodes; @@ -963,7 +1004,7 @@ bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh, int tetraNode3 = (tetraNodesIt->next())->GetID(); int tetraNode4 = (tetraNodesIt->next())->GetID(); - MESSAGE("TETRAHEDRON -> ID = " << tetraId << " N1 = " << tetraNode1 << " N2 = " << tetraNode2 << " N3 = " << tetraNode3 << " N4 = " << tetraNode4); +// MESSAGE("TETRAHEDRON -> ID = " << tetraId << " N1 = " << tetraNode1 << " N2 = " << tetraNode2 << " N3 = " << tetraNode3 << " N4 = " << tetraNode4); } delete iteratorTetra; diff --git a/src/SMESH/SMESH_subMesh.cxx b/src/SMESH/SMESH_subMesh.cxx index 9fae1d7ab..2e6799ed2 100644 --- a/src/SMESH/SMESH_subMesh.cxx +++ b/src/SMESH/SMESH_subMesh.cxx @@ -249,12 +249,60 @@ bool SMESH_subMesh::SubMeshesComputed() throw(SALOME_Exception) for (itsub = subMeshes.begin(); itsub != subMeshes.end(); itsub++) { SMESH_subMesh *sm = (*itsub).second; + + const TopoDS_Shape & ss = sm->GetSubShape(); + int type = ss.ShapeType(); // SCRUTE(sm->GetId()); // SCRUTE(sm->GetComputeState()); bool computeOk = (sm->GetComputeState() == COMPUTE_OK); if (!computeOk) { subMeshesComputed = false; + + switch (type) + { + case TopAbs_COMPOUND: + { + MESSAGE("The not computed sub mesh is a COMPOUND"); + break; + } + case TopAbs_COMPSOLID: + { + MESSAGE("The not computed sub mesh is a COMPSOLID"); + break; + } + case TopAbs_SHELL: + { + MESSAGE("The not computed sub mesh is a SHEL"); + break; + } + case TopAbs_WIRE: + { + MESSAGE("The not computed sub mesh is a WIRE"); + break; + } + case TopAbs_SOLID: + { + MESSAGE("The not computed sub mesh is a SOLID"); + break; + } + case TopAbs_FACE: + { + MESSAGE("The not computed sub mesh is a FACE"); + break; + } + case TopAbs_EDGE: + { + MESSAGE("The not computed sub mesh is a EDGE"); + break; + } + default: + { + MESSAGE("The not computed sub mesh is of unknown type"); + break; + } + } + SCRUTE(sm->GetId()); break; } -- 2.39.2