X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH%2FSMESH_subMesh.hxx;h=249784c081196746c632c475cf01e1e9ebf0a650;hb=2e144ad6b9fb3a0f1586772afc880714d72fe1e9;hp=63ff08d3f8a6077e6902d15d7f1d54446741fe3c;hpb=42d136bcdc95b123867c090c5776d241b960da41;p=modules%2Fsmesh.git diff --git a/src/SMESH/SMESH_subMesh.hxx b/src/SMESH/SMESH_subMesh.hxx index 63ff08d3f..249784c08 100644 --- a/src/SMESH/SMESH_subMesh.hxx +++ b/src/SMESH/SMESH_subMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 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 @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -88,6 +88,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 @@ -139,16 +142,22 @@ class SMESH_EXPORT SMESH_subMesh /*! * \brief Return an event listener data * \param listener - the listener whose data is + * \param myOwn - if \c true, returns a listener set by this sub-mesh, + * else returns a listener listening to events of this sub-mesh * \retval EventListenerData* - found data, maybe NULL */ - EventListenerData* GetEventListenerData(EventListener* listener) const; + EventListenerData* GetEventListenerData(EventListener* listener, + const bool myOwn=false) const; /*! * \brief Return an event listener data * \param listenerName - the listener name + * \param myOwn - if \c true, returns a listener set by this sub-mesh, + * else returns a listener listening to events of this sub-mesh * \retval EventListenerData* - found data, maybe NULL */ - EventListenerData* GetEventListenerData(const std::string& listenerName) const; + EventListenerData* GetEventListenerData(const std::string& listenerName, + const bool myOwn=false) const; /*! * \brief Unregister the listener and delete it and it's data @@ -209,10 +218,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); @@ -271,7 +280,7 @@ public: protected: // ================================================================== - void insertDependence(const TopoDS_Shape aSubShape); + void insertDependence(const TopoDS_Shape aShape, TopAbs_ShapeEnum aSubType ); void removeSubMeshElementsAndNodes(); void updateDependantsState(const compute_event theEvent); @@ -318,7 +327,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;