]> Creatis software - creaVtk.git/blob - bbtk_creaVtk_PKG/src/bbcreaVtkCreateMeshFromPoints.h
#3502 Bug close surface in CreateMeshFromPoints
[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(CloseSurface, bool);
34   BBTK_DECLARE_OUTPUT(Out,vtkPolyData*);
35   BBTK_PROCESS(Process);
36   void Process();
37
38         vtkPoints                       *points;
39         vtkCellArray            *cells;
40         vtkPolyData             *polydata;
41         vtkCleanPolyData        *clean;
42         vtkTriangleFilter       *triangle;
43         
44         bool CalcValidCentroid(double(&centroid)[3], int start, int end, int increment, int numPoints);
45         bool CheckLinePointOrder();
46         bool isPointingCorrectly( int firstPointId, int secPointId, double(&centroid)[3], int contrPointId);
47         void CloseContourBottom(bool uPointOrder);
48         void CloseContourSides(std::vector<int> lstIndexs, bool uPointOrder);
49         void CloseOpenContourSurface(std::vector<int> lstIndexs);
50
51 //===== 
52 // 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)
53 //===== 
54 };
55
56 BBTK_BEGIN_DESCRIBE_BLACK_BOX(CreateMeshFromPoints,bbtk::AtomicBlackBox);
57   BBTK_NAME("CreateMeshFromPoints");
58   BBTK_AUTHOR("InfoDev");
59   BBTK_DESCRIPTION("No Description.");
60   BBTK_CATEGORY("empty");
61
62   BBTK_INPUT(CreateMeshFromPoints,LstX,"List X point",std::vector<double>,"");
63   BBTK_INPUT(CreateMeshFromPoints,LstY,"List Y point",std::vector<double>,"");
64   BBTK_INPUT(CreateMeshFromPoints,LstZ,"List Z point",std::vector<double>,"");
65   BBTK_INPUT(CreateMeshFromPoints,LstIndexs,"Number of points by segment",std::vector<int>,"");
66   BBTK_INPUT(CreateMeshFromPoints,CloseSurface,"(default false) Add the caps to close the surface",bool,"");
67
68   BBTK_OUTPUT(CreateMeshFromPoints,Out,"vtkPolyData",vtkPolyData*,"");
69
70 BBTK_END_DESCRIBE_BLACK_BOX(CreateMeshFromPoints);
71 //===== 
72 // 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)
73 //===== 
74 }
75 // EO namespace bbcreaVtk
76
77 #endif // __bbcreaVtkCreateMeshFromPoints_h_INCLUDED__
78