]> Creatis software - creaMaracasVisu.git/blob - lib/maracasVisuLib/src/interface/wxWindows/Contour/ContourPropagation.h
Support #1768 CREATIS Licence insertion
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / Contour / ContourPropagation.h
1 /*# ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4 #                        pour la Sant�)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 #  This software is governed by the CeCILL-B license under French law and
10 #  abiding by the rules of distribution of free software. You can  use,
11 #  modify and/ or redistribute the software under the terms of the CeCILL-B
12 #  license as circulated by CEA, CNRS and INRIA at the following URL
13 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14 #  or in the file LICENSE.txt.
15 #
16 #  As a counterpart to the access to the source code and  rights to copy,
17 #  modify and redistribute granted by the license, users are provided only
18 #  with a limited warranty  and the software's author,  the holder of the
19 #  economic rights,  and the successive licensors  have only  limited
20 #  liability.
21 #
22 #  The fact that you are presently reading this means that you have had
23 #  knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */
25
26 #ifndef __ContourPropagation_h_INCLUDED__
27 #define __ContourPropagation_h_INCLUDED__
28
29 #include "Propagation.h"
30 #include "ExtractControlPoints2D.h"
31 #include "vtkImageData.h"
32 #include "vectorFunctions.h"
33 #include "marTypes.h"
34
35 class creaMaracasVisu_EXPORT ContourPropagation 
36 {
37         public:
38                 ContourPropagation();
39                 ~ContourPropagation();
40                 void resetAppend                                ( );
41                 void appendContour                              ( std::vector<double>*InX, 
42                                                                                   std::vector<double>*InY, 
43                                                                                   std::vector<double>*InZ );
44                 void GetContour                                 ( int id, std::vector<double>*vecX, 
45                                                                                                   std::vector<double>*vecY, 
46                                                                                                   std::vector<double>*vecZ );
47                 //AUTOMATIC METHOD
48                 void GetInitialControlPoints    ( int id, std::vector<double>*vecX, 
49                                                                                                   std::vector<double>*vecY, 
50                                                                                                   std::vector<double>*vecZ);
51                 void GetControlPoints                   ( int id, std::vector<double>*vecX, 
52                                                                                                   std::vector<double>*vecY, 
53                                                                                                   std::vector<double>*vecZ );
54
55                 //SAMPLING METHOD
56                 void CalculeSplinePropagation();
57                 void GetControlPoints                   ( int id, double samp,
58                                                                                   std::vector<double>*vecX, 
59                                                                                   std::vector<double>*vecY, 
60                                                                                   std::vector<double>*vecZ );
61
62                 int  FindIdWithZ                                ( double z);
63
64
65                 void getMaxMinZ                                 ( double *minz, double *maxz);
66                 void setInterpolationNumber             ( int num );
67
68
69         //TEST CLASSES FOR BBTK
70                 void appendContour                              ( );
71                 vtkImageData* GetKeyContours    ( std::vector<double>*vecX, 
72                                                                                   std::vector<double>*vecY, 
73                                                                                   std::vector<double>*vecZ, 
74                                                                                   std::vector<int>*vecS );
75
76                 bool ifSliceKeyContourExist(int slice);
77
78
79         private:
80                 bool mustOrderAppend( );
81                 void orderAppend( );
82                 void OrdenarSliceKeyContourVec();
83                 
84
85                 PropContour                                     *_propc;
86                 AutoControlPoints                       *_autoc;
87                 ExtractControlPoints2D          *_ext2D;
88
89                 std::vector<double>                     _InX;
90                 std::vector<double>                     _InY;
91                 std::vector<double>                     _InZ;
92                 std::vector<int>                        _InS;
93                 std::vector<int>                        _sliceKeyContourVec;
94
95                 std::vector<Vector>                     _planevector;
96 };
97
98 #endif //__ContourPropagation_h_INCLUDED__
99  
100