diff --git a/src/SMESH/SMESH_Mesh.cxx b/src/SMESH/SMESH_Mesh.cxx index 22fd2e44e..9bf36fb1f 100644 --- a/src/SMESH/SMESH_Mesh.cxx +++ b/src/SMESH/SMESH_Mesh.cxx @@ -813,7 +813,8 @@ const SMESH_Hypothesis * SMESH_Mesh::GetHypothesis(const TopoDS_Shape & aSubS int SMESH_Mesh::GetHypotheses(const TopoDS_Shape & aSubShape, const SMESH_HypoFilter& aFilter, list & aHypList, - const bool andAncestors) const + const bool andAncestors, + list< TopoDS_Shape > * assignedTo/*=0*/) const { set hypTypes; // to exclude same type hypos from the result list int nbHyps = 0; @@ -842,6 +843,7 @@ int SMESH_Mesh::GetHypotheses(const TopoDS_Shape & aSubShape, nbHyps++; if ( !cSMESH_Hyp(*hyp)->IsAuxiliary() ) mainHypFound = true; + if ( assignedTo ) assignedTo->push_back( aSubShape ); } } @@ -868,6 +870,7 @@ int SMESH_Mesh::GetHypotheses(const TopoDS_Shape & aSubShape, nbHyps++; if ( !cSMESH_Hyp(*hyp)->IsAuxiliary() ) mainHypFound = true; + if ( assignedTo ) assignedTo->push_back( curSh ); } } } diff --git a/src/SMESH/SMESH_Mesh.hxx b/src/SMESH/SMESH_Mesh.hxx index 06c4e7802..e329e0313 100644 --- a/src/SMESH/SMESH_Mesh.hxx +++ b/src/SMESH/SMESH_Mesh.hxx @@ -144,8 +144,9 @@ public: int GetHypotheses(const TopoDS_Shape & aSubShape, const SMESH_HypoFilter& aFilter, - std::list & aHypList, - const bool andAncestors) const; + std::list< const SMESHDS_Hypothesis * >& aHypList, + const bool andAncestors, + std::list< TopoDS_Shape > * assignedTo=0) const; const std::list & GetLog() throw(SALOME_Exception);