X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH%2FSMESH_Gen.hxx;h=5364065ef8c054a05f1a5bfb311066a8443048a2;hp=17dbe35e63070eb57b0dbbd36bdd81b74d7ed242;hb=81e9dbdf6c92fd3e7a41c141743c81d7a88cc440;hpb=11899ab525b3af5a4714cec5cf1abf5f06ffb108;ds=sidebyside diff --git a/src/SMESH/SMESH_Gen.hxx b/src/SMESH/SMESH_Gen.hxx index 17dbe35e6..5364065ef 100644 --- a/src/SMESH/SMESH_Gen.hxx +++ b/src/SMESH/SMESH_Gen.hxx @@ -68,6 +68,28 @@ class SMESH_Gen // notify on bad state of attached algos, return false // if Compute() would fail because of some algo bad state + + enum TAlgoStateErrorName { NONE=0, MISSING_ALGO, MISSING_HYPO, NOT_CONFORM_MESH }; + struct TAlgoStateError + { + TAlgoStateErrorName _name; + const SMESH_Algo* _algo; + int _algoDim; + bool _isGlobalAlgo; + + TAlgoStateError(): _algoDim(0),_algo(0),_name(NONE) {} + void Set(TAlgoStateErrorName name, const SMESH_Algo* algo, bool isGlobal) + { _name = name; _algo = algo; _algoDim = algo->GetDim(); _isGlobalAlgo = isGlobal; } + void Set(TAlgoStateErrorName name, const int algoDim, bool isGlobal) + { _name = name; _algo = 0; _algoDim = algoDim; _isGlobalAlgo = isGlobal; } + }; + + bool GetAlgoState(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape, + std::list< SMESH_Gen::TAlgoStateError > & theErrors); + // notify on bad state of attached algos, return false + // if Compute() would fail because of some algo bad state + // theErrors list contains problems description + StudyContextStruct *GetStudyContext(int studyId);