Salome HOME
PR: display hexahedron
[modules/smesh.git] / src / SMDS / SMDS_VtkVolume.hxx
1 #ifndef _SMDS_VTKVOLUME_HXX_
2 #define _SMDS_VTKVOLUME_HXX_
3
4 #include "SMESH_SMDS.hxx"
5
6 #include "SMDS_MeshVolume.hxx"
7 #include <vtkUnstructuredGrid.h>
8 #include <vector>
9
10 class SMDS_EXPORT SMDS_VtkVolume:public SMDS_MeshVolume
11 {
12 public:
13   SMDS_VtkVolume();
14   SMDS_VtkVolume(std::vector<vtkIdType> nodeIds, SMDS_Mesh* mesh);
15   ~SMDS_VtkVolume();
16   void init(std::vector<vtkIdType> nodeIds, SMDS_Mesh* mesh);
17   bool ChangeNodes(const SMDS_MeshNode* nodes[],
18                    const int            nbNodes);
19
20   void Print(std::ostream & OS) const;
21   int NbFaces() const;
22   int NbNodes() const;
23   int NbEdges() const;
24   virtual SMDSAbs_ElementType GetType() const;  
25   virtual SMDSAbs_EntityType GetEntityType() const;
26
27   /*!
28    * \brief Return node by its index
29    * \param ind - node index
30    * \retval const SMDS_MeshNode* - the node
31    */
32   virtual const SMDS_MeshNode* GetNode(const int ind) const;
33
34 protected:
35   SMDS_ElemIteratorPtr
36   elementsIterator(SMDSAbs_ElementType type) const;
37 };
38
39 #endif