X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMDS%2FSMDS_MeshElement.hxx;h=3f8459a4e25bb4eba63976b6a961ebe739324e1c;hb=aa67cc96d730566d202d1014d97b7f0b3a4d71f4;hp=0142939127e976195a7315ce2424a141143b00c5;hpb=256c68c3f97225b1fa805d3f30ea2f422c1d2856;p=modules%2Fsmesh.git diff --git a/src/SMDS/SMDS_MeshElement.hxx b/src/SMDS/SMDS_MeshElement.hxx index 014293912..3f8459a4e 100644 --- a/src/SMDS/SMDS_MeshElement.hxx +++ b/src/SMDS/SMDS_MeshElement.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2010 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 @@ -19,6 +19,7 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + // SMESH SMDS : implementaion of Salome mesh data structure // File : SMDS_MeshElement.hxx // Module : SMESH @@ -27,15 +28,19 @@ #define _SMDS_MeshElement_HeaderFile #include "SMESH_SMDS.hxx" - + #include "SMDSAbs_ElementType.hxx" #include "SMDS_MeshObject.hxx" #include "SMDS_ElemIterator.hxx" #include "SMDS_MeshElementIDFactory.hxx" +#include "SMDS_StdIterator.hxx" #include #include +#include +#include + //typedef unsigned short UShortType; typedef short ShortType; @@ -50,6 +55,7 @@ class SMDS_Mesh; */ // ============================================================ + class SMDS_EXPORT SMDS_MeshElement:public SMDS_MeshObject { public: @@ -59,6 +65,11 @@ public: SMDS_ElemIteratorPtr facesIterator() const; virtual SMDS_ElemIteratorPtr elementsIterator(SMDSAbs_ElementType type) const; + // std-like iteration on nodes + typedef SMDS_StdIterator< const SMDS_MeshNode*, SMDS_ElemIteratorPtr > iterator; + iterator begin_nodes() const { return iterator( nodesIterator() ); } + iterator end_nodes() const { return iterator(); } + virtual int NbNodes() const; virtual int NbEdges() const; virtual int NbFaces() const; @@ -66,16 +77,19 @@ public: ///Return the type of the current element virtual SMDSAbs_ElementType GetType() const = 0; + virtual vtkIdType GetVtkType() const = 0; virtual bool IsPoly() const { return false; }; virtual bool IsQuadratic() const; //! Return type of entity virtual SMDSAbs_EntityType GetEntityType() const = 0; virtual bool IsMediumNode(const SMDS_MeshNode* node) const; + virtual int NbCornerNodes() const; friend SMDS_EXPORT std::ostream & operator <<(std::ostream & OS, const SMDS_MeshElement *); friend SMDS_EXPORT bool SMDS_MeshElementIDFactory::BindID(int ID,SMDS_MeshElement* elem); friend class SMDS_Mesh; + friend class SMESHDS_Mesh; // =========================== // Access to nodes by index @@ -129,6 +143,7 @@ public: inline void setIdInShape(int id) { myIdInShape = id; }; protected: + inline void setId(int id) {myID = id; }; SMDS_MeshElement(int ID=-1); SMDS_MeshElement(int id, ShortType meshId, ShortType shapeId=-1); virtual void Print(std::ostream & OS) const;