Salome HOME
Replace oe by ?
[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 "SMDS_UnstructuredGrid.hxx"
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 //#ifdef VTK_HAVE_POLYHEDRON
18   void initPoly(std::vector<vtkIdType> nodeIds, std::vector<int> nbNodesPerFace, SMDS_Mesh* mesh);
19 //#endif
20   virtual bool ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes);
21   virtual bool vtkOrder(const SMDS_MeshNode* nodes[], const int nbNodes);
22
23   void Print(std::ostream & OS) const;
24   int NbFaces() const;
25   int NbNodes() const;
26   int NbEdges() const;
27
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;
33
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,
42                             vtkIdType *nodeIds,
43                             int nbNodes,
44                             double* result);
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;
49
50   virtual SMDS_ElemIteratorPtr elementsIterator(SMDSAbs_ElementType type) const;
51   virtual SMDS_ElemIteratorPtr nodesIteratorToUNV() const;
52   virtual SMDS_ElemIteratorPtr interlacedNodesElemIterator() const;
53
54 protected:
55 };
56
57 #endif