23221: EDF - all edges are not meshed

an internal EDGE in a SOLID to be meshed
This commit is contained in:
eap 2016-01-29 18:03:18 +03:00
parent e074bae4b7
commit 6f5fd35e49
2 changed files with 8 additions and 4 deletions

View File

@ -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() );

View File

@ -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);