1 #ifndef _SMDS_VTKVOLUME_HXX_
2 #define _SMDS_VTKVOLUME_HXX_
4 #include "SMESH_SMDS.hxx"
6 #include "SMDS_MeshVolume.hxx"
7 #include "SMDS_UnstructuredGrid.hxx"
10 class SMDS_EXPORT SMDS_VtkVolume: public SMDS_MeshVolume
14 SMDS_VtkVolume(std::vector<vtkIdType> nodeIds, SMDS_Mesh* mesh);
16 void init(std::vector<vtkIdType> nodeIds, SMDS_Mesh* mesh);
17 //#ifdef VTK_HAVE_POLYHEDRON
18 void initPoly(std::vector<vtkIdType> nodeIds, std::vector<int> nbNodesPerFace, SMDS_Mesh* mesh);
20 virtual bool ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes);
21 virtual bool vtkOrder(const SMDS_MeshNode* nodes[], const int nbNodes);
23 void Print(std::ostream & OS) const;
28 // 1 <= face_ind <= NbFaces()
29 int NbFaceNodes (const int face_ind) const;
30 // 1 <= face_ind <= NbFaces()
31 // 1 <= node_ind <= NbFaceNodes()
32 const SMDS_MeshNode* GetFaceNode (const int face_ind, const int node_ind) const;
34 virtual SMDSAbs_ElementType GetType() const;
35 virtual vtkIdType GetVtkType() const;
36 virtual SMDSAbs_EntityType GetEntityType() const;
37 virtual const SMDS_MeshNode* GetNode(const int ind) const;
38 virtual bool IsQuadratic() const;
39 virtual bool IsPoly() const;
40 virtual bool IsMediumNode(const SMDS_MeshNode* node) const;
41 static void gravityCenter(SMDS_UnstructuredGrid* grid,
45 static bool isForward(double* a,double* b,double* c,double* d);
46 int NbUniqueNodes() const;
47 SMDS_ElemIteratorPtr uniqueNodesIterator() const;
48 const std::vector<int> GetQuantities() const;
50 virtual SMDS_ElemIteratorPtr elementsIterator(SMDSAbs_ElementType type) const;
51 virtual SMDS_ElemIteratorPtr nodesIteratorToUNV() const;
52 virtual SMDS_ElemIteratorPtr interlacedNodesElemIterator() const;