X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMDS%2FSMDS_MeshVolume.hxx;h=76fabc2017a8359db2c38d2484d993ff3cb73b0b;hb=1fb3ff621ac19da15742a5e8b9253b594977d14a;hp=f91b03ac23fe91dafd2e2f2ad15e4845a06021a6;hpb=7a65c9fad427b1ccba6b9ccae612296e5092a324;p=modules%2Fsmesh.git diff --git a/src/SMDS/SMDS_MeshVolume.hxx b/src/SMDS/SMDS_MeshVolume.hxx index f91b03ac2..76fabc201 100644 --- a/src/SMDS/SMDS_MeshVolume.hxx +++ b/src/SMDS/SMDS_MeshVolume.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 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 @@ -20,7 +20,7 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// SMESH SMDS : implementaion of Salome mesh data structure +// SMESH SMDS : implementation of Salome mesh data structure // File : SMDS_MeshVolume.hxx // Module : SMESH // @@ -31,11 +31,42 @@ #include "SMDS_MeshCell.hxx" -class SMDS_EXPORT SMDS_MeshVolume:public SMDS_MeshCell +/*! + * \brief Mesh volume. This type is not allocated. + * It is only used as function argument type to provide more clear semantic + * and to provide API specific to polyherdal volume + */ +class SMDS_EXPORT SMDS_MeshVolume : public SMDS_MeshCell { - - public: - SMDSAbs_ElementType GetType() const; - virtual vtkIdType GetVtkType() const; + void init( const std::vector& nodes, + const std::vector& nbNodesPerFace ); // init a polyherdon + + void init( const std::vector& vtkNodeIds ); + + friend class SMDS_Mesh; + + public: + virtual SMDSAbs_ElementType GetType() const { return SMDSAbs_Volume; } + virtual const SMDS_MeshNode* GetNode(const int ind) const; + virtual int NbNodes() const; + virtual int NbFaces() const; + virtual int NbEdges() const; + virtual int GetNodeIndex( const SMDS_MeshNode* node ) const; + virtual bool ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes); + virtual bool IsMediumNode(const SMDS_MeshNode* node) const; + virtual int NbCornerNodes() const; + + virtual SMDS_ElemIteratorPtr nodesIterator() const = 0; + virtual SMDS_NodeIteratorPtr nodeIterator() const = 0; + + // 1 <= face_ind <= NbFaces() + int NbFaceNodes (const int face_ind) const; + // 1 <= face_ind <= NbFaces() + // 1 <= node_ind <= NbFaceNodes() + const SMDS_MeshNode* GetFaceNode (const int face_ind, const int node_ind) const; + + std::vector GetQuantities() const; + + static SMDSAbs_ElementType Type() { return SMDSAbs_Volume; } }; #endif