X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH%2FSMESH_Mesh.hxx;h=81f9f7a65fcc0e82dfd49c854dcf80d3e42826f4;hb=ec949fddc95c14426f16cdeefee824f3122d9af7;hp=93802346db6121aba1e624e5e78950af771710b7;hpb=4ff5bd61540272713e48de1eee75625028c32155;p=modules%2Fsmesh.git diff --git a/src/SMESH/SMESH_Mesh.hxx b/src/SMESH/SMESH_Mesh.hxx index 93802346d..81f9f7a65 100644 --- a/src/SMESH/SMESH_Mesh.hxx +++ b/src/SMESH/SMESH_Mesh.hxx @@ -17,7 +17,7 @@ // 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 // // // @@ -70,25 +70,40 @@ class SMESH_Group; class TopTools_ListOfShape; class SMESH_subMesh; class SMESH_HypoFilter; +class TopoDS_Solid; -//typedef NMTTools_IndexedDataMapOfShapeIndexedMapOfShape IndexedMapOfChain; typedef SMESH_IndexedDataMapOfShapeIndexedMapOfShape IndexedMapOfChain; class SMESH_Mesh { - SMESH_Mesh(); - SMESH_Mesh(const SMESH_Mesh&); public: - SMESH_Mesh(int theLocalId, - int theStudyId, - SMESH_Gen* theGen, - bool theIsEmbeddedMode, + SMESH_Mesh(int theLocalId, + int theStudyId, + SMESH_Gen* theGen, + bool theIsEmbeddedMode, SMESHDS_Document* theDocument); virtual ~SMESH_Mesh(); + /*! + * \brief Set geometry to be meshed + */ void ShapeToMesh(const TopoDS_Shape & aShape); - + /*! + * \brief Return geometry to be meshed. (It may be a PseudoShape()!) + */ + TopoDS_Shape GetShapeToMesh() const; + /*! + * \brief Return true if there is a geometry to be meshed, not PseudoShape() + */ + bool HasShapeToMesh() const { return _isShapeToMesh; } + /*! + * \brief Return a solid which is returned by GetShapeToMesh() if + * a real geometry to be meshed was not set + */ + static const TopoDS_Solid& PseudoShape(); + + int UNVToMesh(const char* theFileName); /*! * consult DriverMED_R_SMESHDS_Mesh::ReadStatus for returned value @@ -122,11 +137,11 @@ public: void ClearLog() throw(SALOME_Exception); - int GetId(); + int GetId() { return _id; } - SMESHDS_Mesh * GetMeshDS(); + SMESHDS_Mesh * GetMeshDS() { return _myMeshDS; } - SMESH_Gen *GetGen(); + SMESH_Gen *GetGen() { return _gen; } SMESH_subMesh *GetSubMesh(const TopoDS_Shape & aSubShape) throw(SALOME_Exception); @@ -174,25 +189,34 @@ public: int NbNodes() throw(SALOME_Exception); - int NbEdges() throw(SALOME_Exception); + /*! + * ElementOrder points out entities of what order are requested + */ + enum ElementOrder { + ORDER_ANY, /*! entities of any order */ + ORDER_LINEAR, /*! entities of 1st order */ + ORDER_QUADRATIC /*! entities of 2nd order */ + }; + + int NbEdges(ElementOrder order = ORDER_ANY) throw(SALOME_Exception); - int NbFaces() throw(SALOME_Exception); + int NbFaces(ElementOrder order = ORDER_ANY) throw(SALOME_Exception); - int NbTriangles() throw(SALOME_Exception); + int NbTriangles(ElementOrder order = ORDER_ANY) throw(SALOME_Exception); - int NbQuadrangles() throw(SALOME_Exception); + int NbQuadrangles(ElementOrder order = ORDER_ANY) throw(SALOME_Exception); int NbPolygons() throw(SALOME_Exception); - int NbVolumes() throw(SALOME_Exception); + int NbVolumes(ElementOrder order = ORDER_ANY) throw(SALOME_Exception); - int NbTetras() throw(SALOME_Exception); + int NbTetras(ElementOrder order = ORDER_ANY) throw(SALOME_Exception); - int NbHexas() throw(SALOME_Exception); + int NbHexas(ElementOrder order = ORDER_ANY) throw(SALOME_Exception); - int NbPyramids() throw(SALOME_Exception); + int NbPyramids(ElementOrder order = ORDER_ANY) throw(SALOME_Exception); - int NbPrisms() throw(SALOME_Exception); + int NbPrisms(ElementOrder order = ORDER_ANY) throw(SALOME_Exception); int NbPolyhedrons() throw(SALOME_Exception); @@ -211,30 +235,7 @@ public: void RemoveGroup (const int theGroupID); - // Propagation hypothesis management - - 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 - - bool IsPropagatedHypothesis (const TopoDS_Shape& theEdge, - TopoDS_Shape& theMainEdge); - // Returns true, if a local 1D hypothesis is - // propagated on from some other edge. - // Returns through the edge, from - // which the 1D hypothesis is propagated on - - 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); - + SMDSAbs_ElementType GetElementType( const int id, const bool iselem ); // @@ -242,11 +243,8 @@ public: ostream& Dump(ostream & save); private: - // Propagation hypothesis management - void CleanMeshOnPropagationChain(const TopoDS_Shape& theMainEdge); - // -private: +protected: int _id; // id given by creator (unique within the creator instance) int _studyId; int _idDoc; // id given by SMESHDS_Document @@ -261,7 +259,9 @@ private: TopTools_IndexedDataMapOfShapeListOfShape _mapAncestors; - IndexedMapOfChain _mapPropagationChains; // Propagation hypothesis management +protected: + SMESH_Mesh() {}; + SMESH_Mesh(const SMESH_Mesh&) {}; }; #endif