]> Creatis software - creaVtk.git/blob - bbtk_creaVtk_PKG/src/bbcreaVtkCreateMeshFromPoints.h
#3501 new box GlyphPolyDataNormals (Pablo)
[creaVtk.git] / bbtk_creaVtk_PKG / src / bbcreaVtkCreateMeshFromPoints.h
1 //===== 
2 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
3 //===== 
4 #ifndef __bbcreaVtkCreateMeshFromPoints_h_INCLUDED__
5 #define __bbcreaVtkCreateMeshFromPoints_h_INCLUDED__
6
7 #include "bbcreaVtk_EXPORT.h"
8 #include "bbtkAtomicBlackBox.h"
9 #include "iostream"
10
11 #include "vtkPoints.h"
12 #include "vtkCellArray.h"
13 #include "vtkPolyData.h"
14 #include "vtkCleanPolyData.h"
15 #include "vtkTriangleFilter.h"
16
17
18 namespace bbcreaVtk
19 {
20
21 class bbcreaVtk_EXPORT CreateMeshFromPoints
22  : 
23    public bbtk::AtomicBlackBox
24 {
25   BBTK_BLACK_BOX_INTERFACE(CreateMeshFromPoints,bbtk::AtomicBlackBox);
26 //===== 
27 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
28 //===== 
29   BBTK_DECLARE_INPUT(LstX,std::vector<double>);
30   BBTK_DECLARE_INPUT(LstY,std::vector<double>);
31   BBTK_DECLARE_INPUT(LstZ,std::vector<double>);
32   BBTK_DECLARE_INPUT(LstIndexs,std::vector<int>);
33   BBTK_DECLARE_INPUT(OpenClose, bool);
34   BBTK_DECLARE_INPUT(CloseSurface, bool);
35   BBTK_DECLARE_OUTPUT(Out,vtkPolyData*);
36   BBTK_PROCESS(Process);
37   void Process();
38
39         vtkPoints                       *points;
40         vtkCellArray            *cells;
41         vtkPolyData             *polydata;
42         vtkCleanPolyData        *clean;
43         vtkTriangleFilter       *triangle;
44         
45         bool CalcValidCentroid(double(&centroid)[3], int start, int end, int increment, int numPoints);
46         bool CheckLinePointOrder();
47         bool isPointingCorrectly( int firstPointId, int secPointId, double(&centroid)[3], int contrPointId);
48         void CloseContourBottom(bool uPointOrder);
49         void CloseContourSides(std::vector<int> lstIndexs, bool uPointOrder);
50         void CloseOpenContourSurface(std::vector<int> lstIndexs);
51
52 //===== 
53 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
54 //===== 
55 };
56
57 BBTK_BEGIN_DESCRIBE_BLACK_BOX(CreateMeshFromPoints,bbtk::AtomicBlackBox);
58   BBTK_NAME("CreateMeshFromPoints");
59   BBTK_AUTHOR("InfoDev");
60   BBTK_DESCRIPTION("No Description.");
61   BBTK_CATEGORY("empty");
62
63   BBTK_INPUT(CreateMeshFromPoints,LstX,"List X point",std::vector<double>,"");
64   BBTK_INPUT(CreateMeshFromPoints,LstY,"List Y point",std::vector<double>,"");
65   BBTK_INPUT(CreateMeshFromPoints,LstZ,"List Z point",std::vector<double>,"");
66   BBTK_INPUT(CreateMeshFromPoints,LstIndexs,"Number of points by segment",std::vector<int>,"");
67   BBTK_INPUT(CreateMeshFromPoints,OpenClose,"(default false) Type of Contour: false=Open, true=Close",bool,"");
68   BBTK_INPUT(CreateMeshFromPoints,CloseSurface,"(default false) Add the caps to close the surface",bool,"");
69
70   BBTK_OUTPUT(CreateMeshFromPoints,Out,"vtkPolyData",vtkPolyData*,"");
71
72 BBTK_END_DESCRIBE_BLACK_BOX(CreateMeshFromPoints);
73 //===== 
74 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
75 //===== 
76 }
77 // EO namespace bbcreaVtk
78
79 #endif // __bbcreaVtkCreateMeshFromPoints_h_INCLUDED__
80