27 #ifndef _SMESH_SUBMESH_HXX_
28 #define _SMESH_SUBMESH_HXX_
40 #include <TopoDS_Shape.hxx>
63 const TopoDS_Shape & aSubShape);
77 const std::map < int, SMESH_subMesh * >& DependsOn();
83 const bool complexShapeFirst);
85 const TopoDS_Shape & GetSubShape()
const;
90 COMPUTE_OK, FAILED_TO_COMPUTE
112 ALGO_EVENT, COMPUTE_EVENT
168 void NotifyListenersOnEvent(
const int event,
175 void DeleteOwnListeners();
191 void DumpAlgoState(
bool isMain);
193 bool ComputeStateEngine(
int event);
205 const TopAbs_ShapeEnum theShapeType);
208 {
return IsApplicableHypotesis( theHypothesis, _subShape.ShapeType() ); }
218 bool IsEmpty()
const;
220 bool IsMeshComputed()
const;
227 void SetIsAlwaysComputed(
bool isAlCo);
233 void InsertDependence(
const TopoDS_Shape aSubShape);
235 bool SubMeshesComputed();
237 bool SubMeshesReady();
239 void RemoveSubMeshElementsAndNodes();
240 void UpdateDependantsState(
const compute_event theEvent);
241 void UpdateSubMeshState(
const compute_state theState);
242 void ComputeSubMeshStateEngine(
int event);
243 void CleanDependants();
244 void CleanDependsOn();
245 void SetAlgoState(
int state);
251 TopoDS_Shape GetCollection(
SMESH_Gen * theGen,
253 bool & theSubComputed);
259 const TopoDS_Shape& theCollection);
265 bool CheckComputeError(
SMESH_Algo* theAlgo,
const TopoDS_Shape& theShape=TopoDS_Shape());
276 const int theHypType = 0);