From 590f139ee40a4ac3923f029ae4fe6a94da30ba00 Mon Sep 17 00:00:00 2001 From: eap Date: Tue, 4 Mar 2014 16:04:11 +0400 Subject: [PATCH] 22502: [CEA 1070] "Convert to quadratic" does not work if some edges are not set by some elements during meshing Fix a case of a node on VERTEX not belonging to EDGE the segment of node is on --- src/SMESH/SMESH_MesherHelper.cxx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/SMESH/SMESH_MesherHelper.cxx b/src/SMESH/SMESH_MesherHelper.cxx index 98339a189..ded66ca31 100644 --- a/src/SMESH/SMESH_MesherHelper.cxx +++ b/src/SMESH/SMESH_MesherHelper.cxx @@ -1423,8 +1423,15 @@ const SMDS_MeshNode* SMESH_MesherHelper::GetMediumNode(const SMDS_MeshNode* n1, return getMediumNodeOnComposedWire(n1,n2,force3d); } E = TopoDS::Edge(meshDS->IndexToShape( edgeID = pos.first )); - u[0] = GetNodeU(E,n1,n2, force3d ? 0 : &uvOK[0]); - u[1] = GetNodeU(E,n2,n1, force3d ? 0 : &uvOK[1]); + try { + u[0] = GetNodeU(E,n1,n2, force3d ? 0 : &uvOK[0]); + u[1] = GetNodeU(E,n2,n1, force3d ? 0 : &uvOK[1]); + } + catch ( Standard_Failure& f ) + { + // issue 22502 / a node is on VERTEX not belonging to E + return getMediumNodeOnComposedWire(n1,n2,force3d); + } } if ( !force3d & uvOK[0] && uvOK[1] ) -- 2.30.2