Salome HOME
projects
/
modules
/
smesh.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PR: synchro V7_main tag mergefrom_V6_main_28Feb13
[modules/smesh.git]
/
src
/
SMESH
/
SMESH_subMesh.hxx
diff --git
a/src/SMESH/SMESH_subMesh.hxx
b/src/SMESH/SMESH_subMesh.hxx
index 3e01fccb6611b8d351b25b76c832206a37a0e24a..a1b3a8568e1e6530dbe21699ecdbed5fa0a43969 100644
(file)
--- a/
src/SMESH/SMESH_subMesh.hxx
+++ b/
src/SMESH/SMESH_subMesh.hxx
@@
-59,15
+59,18
@@
typedef boost::shared_ptr< SMDS_Iterator<SMESH_subMesh*> > SMESH_subMeshIterator
class SMESH_EXPORT SMESH_subMesh
{
public:
class SMESH_EXPORT SMESH_subMesh
{
public:
- SMESH_subMesh(int Id, SMESH_Mesh * father, SMESHDS_Mesh * meshDS,
+ SMESH_subMesh(int Id,
+ SMESH_Mesh * father,
+ SMESHDS_Mesh * meshDS,
const TopoDS_Shape & aSubShape);
virtual ~ SMESH_subMesh();
const TopoDS_Shape & aSubShape);
virtual ~ SMESH_subMesh();
- int GetId() const;
+ int GetId() const;
// == meshDS->ShapeToIndex( aSubShape )
SMESH_Mesh* GetFather() { return _father; }
SMESH_Mesh* GetFather() { return _father; }
- SMESHDS_SubMesh * GetSubMeshDS();
+ SMESHDS_SubMesh * GetSubMeshDS();
+ const SMESHDS_SubMesh * GetSubMeshDS() const;
SMESHDS_SubMesh* CreateSubMeshDS();
// Explicit SMESHDS_SubMesh creation method, required for persistence mechanism
SMESHDS_SubMesh* CreateSubMeshDS();
// Explicit SMESHDS_SubMesh creation method, required for persistence mechanism
@@
-77,12
+80,11
@@
class SMESH_EXPORT SMESH_subMesh
SMESH_Algo* GetAlgo() const;
const std::map < int, SMESH_subMesh * >& DependsOn();
SMESH_Algo* GetAlgo() const;
const std::map < int, SMESH_subMesh * >& DependsOn();
- //const map < int, SMESH_subMesh * >&Dependants();
/*!
* \brief Return iterator on the submeshes this one depends on
*/
SMESH_subMeshIteratorPtr getDependsOnIterator(const bool includeSelf,
/*!
* \brief Return iterator on the submeshes this one depends on
*/
SMESH_subMeshIteratorPtr getDependsOnIterator(const bool includeSelf,
- const bool complexShapeFirst);
+ const bool complexShapeFirst)
const
;
const TopoDS_Shape & GetSubShape() const;
const TopoDS_Shape & GetSubShape() const;
@@
-90,11
+92,11
@@
class SMESH_EXPORT SMESH_subMesh
{
NOT_READY, READY_TO_COMPUTE,
COMPUTE_OK, FAILED_TO_COMPUTE
{
NOT_READY, READY_TO_COMPUTE,
COMPUTE_OK, FAILED_TO_COMPUTE
-
};
+ };
enum algo_state
{
NO_ALGO, MISSING_HYP, HYP_OK
enum algo_state
{
NO_ALGO, MISSING_HYP, HYP_OK
-
};
+ };
enum algo_event
{
ADD_HYP , ADD_ALGO,
enum algo_event
{
ADD_HYP , ADD_ALGO,
@@
-102,16
+104,13
@@
class SMESH_EXPORT SMESH_subMesh
ADD_FATHER_HYP , ADD_FATHER_ALGO,
REMOVE_FATHER_HYP, REMOVE_FATHER_ALGO,
MODIF_HYP
ADD_FATHER_HYP , ADD_FATHER_ALGO,
REMOVE_FATHER_HYP, REMOVE_FATHER_ALGO,
MODIF_HYP
-
};
+ };
enum compute_event
{
enum compute_event
{
- MODIF_ALGO_STATE, COMPUTE,
-#ifdef WITH_SMESH_CANCEL_COMPUTE
- COMPUTE_CANCELED,
-#endif
+ MODIF_ALGO_STATE, COMPUTE, COMPUTE_CANCELED,
CLEAN, SUBMESH_COMPUTED, SUBMESH_RESTORED, SUBMESH_LOADED,
MESH_ENTITY_REMOVED, CHECK_COMPUTE_STATE
CLEAN, SUBMESH_COMPUTED, SUBMESH_RESTORED, SUBMESH_LOADED,
MESH_ENTITY_REMOVED, CHECK_COMPUTE_STATE
-
};
+ };
enum event_type
{
ALGO_EVENT, COMPUTE_EVENT
enum event_type
{
ALGO_EVENT, COMPUTE_EVENT
@@
-142,6
+141,13
@@
class SMESH_EXPORT SMESH_subMesh
*/
EventListenerData* GetEventListenerData(EventListener* listener) const;
*/
EventListenerData* GetEventListenerData(EventListener* listener) const;
+ /*!
+ * \brief Return an event listener data
+ * \param listenerName - the listener name
+ * \retval EventListenerData* - found data, maybe NULL
+ */
+ EventListenerData* GetEventListenerData(const std::string& listenerName) const;
+
/*!
* \brief Unregister the listener and delete it and it's data
* \param listener - the event listener to delete
/*!
* \brief Unregister the listener and delete it and it's data
* \param listener - the event listener to delete
@@
-203,9
+209,9
@@
public:
SMESH_Hypothesis::Hypothesis_Status
SubMeshesAlgoStateEngine(int event, SMESH_Hypothesis * anHyp);
SMESH_Hypothesis::Hypothesis_Status
SubMeshesAlgoStateEngine(int event, SMESH_Hypothesis * anHyp);
-
int GetAlgoState() const
{ return _algoState; }
-
int
GetComputeState() const { return _computeState; };
- SMESH_ComputeErrorPtr& GetComputeError() { return _computeError; }
+
algo_state GetAlgoState() const
{ return _algoState; }
+
compute_state
GetComputeState() const { return _computeState; };
+ SMESH_ComputeErrorPtr& GetComputeError()
{ return _computeError; }
void DumpAlgoState(bool isMain);
void DumpAlgoState(bool isMain);
@@
-247,6
+253,8
@@
public:
void SetIsAlwaysComputed(bool isAlCo);
bool IsAlwaysComputed() { return _alwaysComputed; }
void SetIsAlwaysComputed(bool isAlCo);
bool IsAlwaysComputed() { return _alwaysComputed; }
+ bool SubMeshesComputed(bool * isFailedToCompute=0) const;
+
/*!
* \brief Find common submeshes (based on shared subshapes with other
/*!
* \brief Find common submeshes (based on shared subshapes with other
@@
-261,15
+269,12
@@
protected:
// ==================================================================
void insertDependence(const TopoDS_Shape aSubShape);
// ==================================================================
void insertDependence(const TopoDS_Shape aSubShape);
- bool subMeshesComputed();
- //bool SubMeshesReady();
-
void removeSubMeshElementsAndNodes();
void updateDependantsState(const compute_event theEvent);
void updateSubMeshState(const compute_state theState);
void cleanDependants();
void removeSubMeshElementsAndNodes();
void updateDependantsState(const compute_event theEvent);
void updateSubMeshState(const compute_state theState);
void cleanDependants();
- void cleanDependsOn();
- void setAlgoState(
int
state);
+ void cleanDependsOn(
bool keepSupportedsubMeshes = false
);
+ void setAlgoState(
algo_state
state);
/*!
* \brief Return a shape containing all sub-shapes of the MainShape that can be
/*!
* \brief Return a shape containing all sub-shapes of the MainShape that can be
@@
-277,12
+282,15
@@
protected:
*/
TopoDS_Shape getCollection(SMESH_Gen * theGen,
SMESH_Algo* theAlgo,
*/
TopoDS_Shape getCollection(SMESH_Gen * theGen,
SMESH_Algo* theAlgo,
- bool & theSubComputed);
+ bool & theSubComputed,
+ bool & theSubFailed);
/*!
* \brief Update compute_state by _computeError
* \retval bool - false if there are errors
*/
/*!
* \brief Update compute_state by _computeError
* \retval bool - false if there are errors
*/
- bool checkComputeError(SMESH_Algo* theAlgo, const TopoDS_Shape& theShape=TopoDS_Shape());
+ bool checkComputeError(SMESH_Algo* theAlgo,
+ const bool theComputeOK,
+ const TopoDS_Shape& theShape=TopoDS_Shape());
/*!
* \brief Return a hypothesis attached to theShape.
/*!
* \brief Return a hypothesis attached to theShape.
@@
-306,11
+314,12
@@
protected:
std::map < int, SMESH_subMesh * >_mapDepend;
bool _dependenceAnalysed;
std::map < int, SMESH_subMesh * >_mapDepend;
bool _dependenceAnalysed;
- int _algoState;
- int _computeState;
+ SMESH_Algo * _algo; // the algorithm found by last *StateEngine() call
+ algo_state _algoState;
+ compute_state _computeState;
SMESH_ComputeErrorPtr _computeError;
SMESH_ComputeErrorPtr _computeError;
- // allow algo->Compute() if a subshape of lower dim is meshed but
+ // allow algo->Compute() if a sub
-
shape of lower dim is meshed but
// none mesh entity is bound to it. Eg StdMeshers_CompositeSegment_1D can
// mesh several edges as a whole and leave some of them without mesh entities
bool _alwaysComputed;
// none mesh entity is bound to it. Eg StdMeshers_CompositeSegment_1D can
// mesh several edges as a whole and leave some of them without mesh entities
bool _alwaysComputed;