From 6f5fd35e49b3c1e209a65548ff3358cdbb795398 Mon Sep 17 00:00:00 2001 From: eap Date: Fri, 29 Jan 2016 18:03:18 +0300 Subject: [PATCH] 23221: EDF - all edges are not meshed an internal EDGE in a SOLID to be meshed --- src/SMESH/SMESH_subMesh.cxx | 8 +++++--- src/SMESH/SMESH_subMesh.hxx | 4 +++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/SMESH/SMESH_subMesh.cxx b/src/SMESH/SMESH_subMesh.cxx index 57a401df9..38a445708 100644 --- a/src/SMESH/SMESH_subMesh.cxx +++ b/src/SMESH/SMESH_subMesh.cxx @@ -438,7 +438,8 @@ const map < int, SMESH_subMesh * >& SMESH_subMesh::DependsOn() } break; case TopAbs_COMPSOLID: insertDependence( _subShape, TopAbs_SOLID ); break; - case TopAbs_SOLID: insertDependence( _subShape, TopAbs_FACE ); break; + case TopAbs_SOLID: insertDependence( _subShape, TopAbs_FACE ); + { /*internal EDGE*/ insertDependence( _subShape, TopAbs_EDGE, TopAbs_WIRE ); break; } case TopAbs_SHELL: insertDependence( _subShape, TopAbs_FACE ); break; case TopAbs_FACE: insertDependence( _subShape, TopAbs_EDGE ); break; case TopAbs_WIRE: insertDependence( _subShape, TopAbs_EDGE ); break; @@ -477,9 +478,10 @@ namespace //============================================================================= void SMESH_subMesh::insertDependence(const TopoDS_Shape aShape, - TopAbs_ShapeEnum aSubType) + TopAbs_ShapeEnum aSubType, + TopAbs_ShapeEnum avoidType) { - TopExp_Explorer sub( aShape, aSubType ); + TopExp_Explorer sub( aShape, aSubType, avoidType ); for ( ; sub.More(); sub.Next() ) { SMESH_subMesh *aSubMesh = _father->GetSubMesh( sub.Current() ); diff --git a/src/SMESH/SMESH_subMesh.hxx b/src/SMESH/SMESH_subMesh.hxx index 24152268d..8f9f83c2c 100644 --- a/src/SMESH/SMESH_subMesh.hxx +++ b/src/SMESH/SMESH_subMesh.hxx @@ -281,7 +281,9 @@ public: protected: // ================================================================== - void insertDependence(const TopoDS_Shape aShape, TopAbs_ShapeEnum aSubType ); + void insertDependence(const TopoDS_Shape aShape, + TopAbs_ShapeEnum aSubType, + TopAbs_ShapeEnum avoidType=TopAbs_SHAPE); void removeSubMeshElementsAndNodes(); void updateDependantsState(const compute_event theEvent); -- 2.39.2