class SMESH_Group;
class TopTools_ListOfShape;
class SMESH_subMesh;
+class SMESH_HypoFilter;
typedef NMTTools_IndexedDataMapOfShapeIndexedMapOfShape IndexedMapOfChain;
const list <const SMESHDS_Hypothesis * >&
GetHypothesisList(const TopoDS_Shape & aSubShape) const
throw(SALOME_Exception);
+
+ const SMESH_Hypothesis * GetHypothesis(const TopoDS_Shape & aSubShape,
+ const SMESH_HypoFilter& aFilter,
+ const bool andAncestors) const;
+ bool GetHypotheses(const TopoDS_Shape & aSubShape,
+ const SMESH_HypoFilter& aFilter,
+ list <const SMESHDS_Hypothesis * >& aHypList,
+ const bool andAncestors) const;
+
const list<SMESHDS_Command*> & GetLog() throw(SALOME_Exception);
void ClearLog() throw(SALOME_Exception);
bool IsMainShape(const TopoDS_Shape& theShape) const;
- const TopTools_ListOfShape& GetAncestors(const TopoDS_Shape& theSubShape);
+ const TopTools_ListOfShape& GetAncestors(const TopoDS_Shape& theSubShape) const;
// return list of ancestors of theSubShape in the order
// that lower dimention shapes come first.
// Propagation hypothesis management
- bool IsLocal1DHypothesis (const TopoDS_Shape& theEdge);
- // Returns true, if a local 1D hypothesis is set directly on <theEdge>
+ const SMESH_Hypothesis* IsLocal1DHypothesis (const TopoDS_Shape& theEdge);
+ // Returns a local 1D hypothesis used for theEdge.
bool IsPropagationHypothesis (const TopoDS_Shape& theEdge);
// Returns true, if a local Propagation hypothesis is set directly on <theEdge>
// Returns through <theMainEdge> the edge, from
// which the 1D hypothesis is propagated on <theEdge>
+ bool IsReversedInChain (const TopoDS_Shape& theEdge,
+ const TopoDS_Shape& theMainEdge);
+ // Returns true if theEdge should be reversed to be
+ // co-directed with theMainEdge
+
bool RebuildPropagationChains();
bool RemovePropagationChain (const TopoDS_Shape& theMainEdge);
bool BuildPropagationChain (const TopoDS_Shape& theMainEdge);
//
private:
- int _id; // id given by creator (unique within the creator instance)
- int _studyId;
- int _idDoc; // id given by SMESHDS_Document
- int _groupId; // id generator for group objects
- bool _isShapeToMesh; // set to true when a shape is given (only once)
- list<const SMESHDS_Hypothesis *> _subShapeHypothesisList;
- list <SMESH_subMesh *> _subMeshesUsingHypothesisList;
- SMESHDS_Document * _myDocument;
- SMESHDS_Mesh * _myMeshDS;
- //TopTools_IndexedMapOfShape _subShapes; USE the same map of _myMeshDS
+ int _id; // id given by creator (unique within the creator instance)
+ int _studyId;
+ int _idDoc; // id given by SMESHDS_Document
+ int _groupId; // id generator for group objects
+ bool _isShapeToMesh;// set to true when a shape is given (only once)
+ list <SMESH_subMesh *> _subMeshesUsingHypothesisList;
+ SMESHDS_Document * _myDocument;
+ SMESHDS_Mesh * _myMeshDS;
map <int, SMESH_subMesh *> _mapSubMesh;
map <int, SMESH_Group *> _mapGroup;
- SMESH_Gen *_gen;
+ SMESH_Gen * _gen;
TopTools_IndexedDataMapOfShapeListOfShape _mapAncestors;