X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH%2FSMESH_subMesh.hxx;h=8f9f83c2c7980fb6da7e67200215ba33e22b0155;hb=3da8fefe9c957f4538e9eacf013ce678df4d6c91;hp=36a37740080173452ce1e9322e33a44836d31b5e;hpb=bd39d7c3ed2581f5b6eaf6dca1cb581f767c8f50;p=modules%2Fsmesh.git diff --git a/src/SMESH/SMESH_subMesh.hxx b/src/SMESH/SMESH_subMesh.hxx index 36a377400..8f9f83c2c 100644 --- a/src/SMESH/SMESH_subMesh.hxx +++ b/src/SMESH/SMESH_subMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -81,6 +81,7 @@ class SMESH_EXPORT SMESH_subMesh const std::map < int, SMESH_subMesh * >& DependsOn(); bool DependsOn( const SMESH_subMesh* other ) const; + bool DependsOn( const int shapeID ) const; /*! * \brief Return iterator on the sub-meshes this one depends on. By default * most simple sub-meshes go first. @@ -88,6 +89,9 @@ class SMESH_EXPORT SMESH_subMesh SMESH_subMeshIteratorPtr getDependsOnIterator(const bool includeSelf, const bool complexShapeFirst=false) const; + const std::vector< SMESH_subMesh * > & GetAncestors() const; + void ClearAncestors(); + const TopoDS_Shape & GetSubShape() const; enum compute_state @@ -215,10 +219,10 @@ public: AlgoStateEngine(int event, SMESH_Hypothesis * anHyp); SMESH_Hypothesis::Hypothesis_Status - SubMeshesAlgoStateEngine(int event, SMESH_Hypothesis * anHyp); + SubMeshesAlgoStateEngine(int event, SMESH_Hypothesis * anHyp, bool exitOnFatal=false); algo_state GetAlgoState() const { return _algoState; } - compute_state GetComputeState() const { return _computeState; }; + compute_state GetComputeState() const { return _computeState; } SMESH_ComputeErrorPtr& GetComputeError() { return _computeError; } void DumpAlgoState(bool isMain); @@ -277,7 +281,9 @@ public: protected: // ================================================================== - void insertDependence(const TopoDS_Shape aSubShape); + void insertDependence(const TopoDS_Shape aShape, + TopAbs_ShapeEnum aSubType, + TopAbs_ShapeEnum avoidType=TopAbs_SHAPE); void removeSubMeshElementsAndNodes(); void updateDependantsState(const compute_event theEvent); @@ -324,7 +330,8 @@ protected: int _Id; std::map < int, SMESH_subMesh * >_mapDepend; - bool _dependenceAnalysed; + bool _dependenceAnalysed; + std::vector< SMESH_subMesh * > _ancestors; SMESH_Algo * _algo; // the algorithm found by last *StateEngine() call algo_state _algoState;