Salome HOME
To implement issue 0019962: MakePipeBiNormalAlongAxis implementation.
[modules/geom.git] / src / OBJECT / GEOM_WireframeFace.h
1 #ifndef GEOM_WIREFRAME_FACE_H 
2 #define GEOM_WIREFRAME_FACE_H 
3  
4 #include "GEOM_FaceSource.h" 
5
6 #include <GeomAbs_IsoType.hxx>
7 #include <BRepAdaptor_Surface.hxx>
8  
9 #include <vtkPolyDataSource.h> 
10  
11  
12 class VTK_EXPORT GEOM_WireframeFace: public GEOM_FaceSource 
13
14 public: 
15   vtkTypeMacro(GEOM_WireframeFace,GEOM_FaceSource); 
16   static GEOM_WireframeFace* New(); 
17  
18   /*  vtkSetMacro(NbIso,int); 
19       vtkGetMacro(NbIso,int);*/
20  
21   vtkSetMacro(Discret,int); 
22   vtkGetMacro(Discret,int); 
23  
24   static  
25   void OCC2VTK(const TopoDS_Face& theFace,  
26                vtkPolyData* thePolyData, 
27                vtkPoints* thePts, 
28                const int theNbIso[2], 
29                const int theDiscret = 15);
30
31   //! IsoLines management
32   // theNb[0] - number of U lines
33   // theNb[1] - number of V lines
34   virtual void SetNbIso(const int theNb[2]);
35   virtual void GetNbIso(int &theNbU,int &theNbV);
36
37 protected: 
38   int NbIso[2], Discret; 
39  
40   static  
41   void 
42   CreateIso(const TopoDS_Face& theFace,
43             const int theNbIso[2], 
44             const int theDiscret, 
45             vtkPolyData* thePolyData,
46             vtkPoints* thePts);
47  
48   static  
49   void 
50   CreateIso_(const TopoDS_Face& theFace,
51              GeomAbs_IsoType theIsoType, 
52              Standard_Real Par, 
53              Standard_Real T1,
54              Standard_Real T2,
55              const int theDiscret, 
56              vtkPolyData* thePolyData,
57              vtkPoints* thePts);
58  
59   static  
60   void 
61   CreateIso__(const BRepAdaptor_Surface& theSurface, 
62               GeomAbs_IsoType theIsoType,
63                                     Standard_Real& theU, 
64                                     Standard_Real& theV, 
65                                       Standard_Real theStep, 
66               vtkPolyData* thePolyData,
67               vtkPoints* thePts);
68
69   void Execute(); 
70  
71   GEOM_WireframeFace(); 
72   ~GEOM_WireframeFace(); 
73  
74 private: 
75   // Not implememnted 
76   GEOM_WireframeFace(const GEOM_WireframeFace&); 
77   void operator=(const GEOM_WireframeFace&); 
78 }; 
79  
80  
81 #endif //GEOM_WFACEACTOR_H