X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMDS%2FSMDS_MeshVolume.hxx;h=6c10ce170248da7006d028ab78e6ae0a6369fe55;hp=15887bdcd0778233fc66df31b42354d4a8ed357a;hb=499f29d24922cec66e41b41a0039a954993bc6df;hpb=7a3ecab720cc517ace17c5c4677fd3c20c0051ee diff --git a/src/SMDS/SMDS_MeshVolume.hxx b/src/SMDS/SMDS_MeshVolume.hxx index 15887bdcd..6c10ce170 100644 --- a/src/SMDS/SMDS_MeshVolume.hxx +++ b/src/SMDS/SMDS_MeshVolume.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2022 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 @@ -31,11 +31,46 @@ #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; + + bool ChangeNodes(const std::vector& nodes, + const std::vector& quantities) const; + + // 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