// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
//
//
// bool Contains(const TopoDS_Shape & aSubShape)
// throw (SALOME_Exception);
+ SMESH_Mesh* GetFather() { return _father; }
+
SMESHDS_SubMesh * GetSubMeshDS();
SMESHDS_SubMesh* CreateSubMeshDS();
const map < int, SMESH_subMesh * >&DependsOn();
//const map < int, SMESH_subMesh * >&Dependants();
- const TopoDS_Shape & GetSubShape();
+ const TopoDS_Shape & GetSubShape() const;
- bool _vertexSet; // only for vertex subMesh, set to false for dim > 0
+// bool _vertexSet; // only for vertex subMesh, set to false for dim > 0
enum compute_state
{
enum compute_event
{
MODIF_HYP, MODIF_ALGO_STATE, COMPUTE,
- CLEAN, CLEANDEP, SUBMESH_COMPUTED, SUBMESH_RESTORED
+ CLEAN, SUBMESH_COMPUTED, SUBMESH_RESTORED,
+ MESH_ENTITY_REMOVED, CHECK_COMPUTE_STATE
};
SMESH_Hypothesis::Hypothesis_Status
SMESH_Hypothesis::Hypothesis_Status
SubMeshesAlgoStateEngine(int event, SMESH_Hypothesis * anHyp);
- int GetAlgoState() { return _algoState; }
+ int GetAlgoState() const { return _algoState; }
+ int GetComputeState() const { return _computeState; };
void DumpAlgoState(bool isMain);
bool ComputeStateEngine(int event);
- int GetComputeState()
- {
- return _computeState;
- };
-
bool IsConform(const SMESH_Algo* theAlgo);
// check if a conform mesh will be produced by the Algo
// return true if theHypothesis can be attached to me:
// its dimention is checked
- bool IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis) const;
+ static bool IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis,
+ const TopAbs_ShapeEnum theShapeType);
+
+ bool IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis) const
+ { return IsApplicableHypotesis( theHypothesis, _subShape.ShapeType() ); }
// return true if theHypothesis can be used to mesh me:
// its shape type is checked
+ SMESH_Hypothesis::Hypothesis_Status CheckConcurentHypothesis (const int theHypType);
+ // check if there are several applicable hypothesis on fathers
protected:
void InsertDependence(const TopoDS_Shape aSubShape);
const TopoDS_Shape& theCollection);
// Apply theAlgo to all subshapes in theCollection
- SMESH_Hypothesis::Hypothesis_Status CheckConcurentHypothesis (const int theHypType);
- // check if there are several applicable hypothesis on fathers
-
- int GetNbAttached(const TopoDS_Shape& theShape,
- const SMESH_Hypothesis * theHyp,
- const bool theAlgos = false);
- // return nb of hypotheses attached to theShape.
+ const SMESH_Hypothesis* GetSimilarAttached(const TopoDS_Shape& theShape,
+ const SMESH_Hypothesis * theHyp,
+ const int theHypType = 0);
+ // return a hypothesis attached to theShape.
// If theHyp is provided, similar but not same hypotheses
- // are countered; else only applicable ones are countered
- // depending on theAlgos flag
+ // is returned; else an applicable ones having theHypType
+ // is returned
TopoDS_Shape _subShape;
SMESHDS_Mesh * _meshDS;
int _Id;
SMESH_Mesh *_father;
map < int, SMESH_subMesh * >_mapDepend;
- //map < int, SMESH_subMesh * >_mapDependants;
bool _dependenceAnalysed;
- //bool _dependantsFound;
int _algoState;
- //int _oldAlgoState;
int _computeState;
};