27 #ifndef _SMESH_SUBMESH_HXX_
28 #define _SMESH_SUBMESH_HXX_
36 #include "Utils_SALOME_Exception.hxx"
38 #include <TopoDS_Shape.hxx>
65 const TopoDS_Shape & aSubShape);
82 const std::map < int, SMESH_subMesh * >& DependsOn();
84 bool DependsOn(
const int shapeID )
const;
90 const bool complexShapeFirst=
false)
const;
92 const std::vector< SMESH_subMesh * > & GetAncestors()
const;
93 void ClearAncestors();
121 ALGO_EVENT, COMPUTE_EVENT
150 const bool myOwn=
false)
const;
160 const bool myOwn=
false)
const;
171 std::map< EventListener*, EventListenerData* > _eventListeners;
198 void notifyListenersOnEvent(
const int event,
205 void deleteOwnListeners();
210 void loadDependentMeshes();
227 void DumpAlgoState(
bool isMain);
229 bool ComputeStateEngine(compute_event event);
230 void ComputeSubMeshStateEngine(compute_event event,
const bool includeSelf=
false);
242 const TopAbs_ShapeEnum theShapeType);
254 bool IsEmpty()
const;
256 bool IsMeshComputed()
const;
263 void SetIsAlwaysComputed(
bool isAlCo);
266 bool SubMeshesComputed(
bool * isFailedToCompute=0)
const;
268 int GetComputeCost()
const;
278 std::set<const SMESH_subMesh*>& theSetOfCommon )
const;
282 void insertDependence(
const TopoDS_Shape aShape,
283 TopAbs_ShapeEnum aSubType,
284 TopAbs_ShapeEnum avoidType=TopAbs_SHAPE);
286 void removeSubMeshElementsAndNodes();
287 void updateDependantsState(
const compute_event theEvent);
288 void updateSubMeshState(
const compute_state theState);
289 void cleanDependants();
290 void cleanDependsOn(
SMESH_Algo* algoRequiringCleaning=0 );
291 void setAlgoState(algo_state state);
297 TopoDS_Shape getCollection(
SMESH_Gen * theGen,
299 bool & theSubComputed,
301 std::vector<SMESH_subMesh*>& theSubs);
307 const bool theComputeOK,
308 const TopoDS_Shape& theShape=TopoDS_Shape());
319 const int theHypType = 0);
321 int computeCost()
const;