X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMDS%2FSMDS_Mesh.hxx;h=da7c9d5f85e48eaa3977bbccebb90cba888cc5db;hb=96a86667a9ffe5128ffeb08720a9ced6f8b3954b;hp=38952f78cb5bcb17d540b1952418f3fc98078ff5;hpb=b7a7d49664daa32e1befb558280e13ed0bde37c9;p=modules%2Fsmesh.git diff --git a/src/SMDS/SMDS_Mesh.hxx b/src/SMDS/SMDS_Mesh.hxx index 38952f78c..da7c9d5f8 100644 --- a/src/SMDS/SMDS_Mesh.hxx +++ b/src/SMDS/SMDS_Mesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -66,8 +66,12 @@ public: virtual SMDS_ElemIteratorPtr elementGeomIterator(SMDSAbs_GeometryType type) const; virtual SMDS_ElemIteratorPtr elementEntityIterator(SMDSAbs_EntityType type) const; - virtual SMDS_NodeIteratorPtr shapeNodesIterator (int shapeID, size_t nbElemsToReturn=-1) const; - virtual SMDS_ElemIteratorPtr shapeElementsIterator(int shapeID, size_t nbElemsToReturn=-1) const; + virtual SMDS_NodeIteratorPtr shapeNodesIterator (int shapeID, + size_t nbElemsToReturn=-1, + const SMDS_MeshNode* sm1stNode=0) const; + virtual SMDS_ElemIteratorPtr shapeElementsIterator(int shapeID, + size_t nbElemsToReturn=-1, + const SMDS_MeshElement* sm1stElem=0) const; SMDSAbs_ElementType GetElementType( const int id, const bool iselem ) const; @@ -609,12 +613,16 @@ public: bool ChangeElementNodes(const SMDS_MeshElement * elem, const SMDS_MeshNode * nodes[], const int nbnodes); + bool ChangePolyhedronNodes(const SMDS_MeshElement * elem, + const std::vector& nodes, + const std::vector& quantities); //virtual void Renumber (const bool isNodes, const int startID = 1, const int deltaID = 1); // Renumber all nodes or elements. virtual void CompactMesh(); - bool IsCompacted(); + virtual bool IsCompacted(); + virtual bool HasNumerationHoles(); template static const ELEMTYPE* DownCast( const SMDS_MeshElement* e ) @@ -668,15 +676,15 @@ public: /*! * \brief Raise an exception if free memory (ram+swap) too low - * \param doNotRaise - if true, suppres exception, just return free memory size + * \param doNotRaise - if true, suppress exception, just return free memory size * \retval int - amount of available memory in MB or negative number in failure case */ static int CheckMemory(const bool doNotRaise=false) throw (std::bad_alloc); - int MaxNodeID() const; - int MinNodeID() const; - int MaxElementID() const; - int MinElementID() const; + virtual int MaxNodeID() const; + virtual int MinNodeID() const; + virtual int MaxElementID() const; + virtual int MinElementID() const; const SMDS_MeshInfo& GetMeshInfo() const { return myInfo; } @@ -703,7 +711,7 @@ public: void Modified(); vtkMTimeType GetMTime() const; -protected: + protected: SMDS_Mesh(SMDS_Mesh * parent); void addChildrenWithNodes(std::set& setOfChildren, @@ -720,6 +728,11 @@ protected: else if (z < zmin) zmin = z; } + void updateInverseElements( const SMDS_MeshElement * element, + const SMDS_MeshNode* const* nodes, + const int nbnodes, + std::set& oldNodes ); + void setNbShapes( size_t nbShapes );