anatomist  5.0.5
3D neuroimaging data viewer
perfProcQtDeco.h
Go to the documentation of this file.
1 /* This software and supporting documentation are distributed by
2  * Institut Federatif de Recherche 49
3  * CEA/NeuroSpin, Batiment 145,
4  * 91191 Gif-sur-Yvette cedex
5  * France
6  *
7  * This software is governed by the CeCILL-B license under
8  * French law and abiding by the rules of distribution of free software.
9  * You can use, modify and/or redistribute the software under the
10  * terms of the CeCILL-B license as circulated by CEA, CNRS
11  * and INRIA at the following URL "http://www.cecill.info".
12  *
13  * As a counterpart to the access to the source code and rights to copy,
14  * modify and redistribute granted by the license, users are provided only
15  * with a limited warranty and the software's author, the holder of the
16  * economic rights, and the successive licensors have only limited
17  * liability.
18  *
19  * In this respect, the user's attention is drawn to the risks associated
20  * with loading, using, modifying and/or developing or reproducing the
21  * software by the user in light of its specific status of free software,
22  * that may mean that it is complicated to manipulate, and that also
23  * therefore means that it is reserved for developers and experienced
24  * professionals having in-depth computer knowledge. Users are therefore
25  * encouraged to load and test the software's suitability as regards their
26  * requirements in conditions enabling the security of their systems and/or
27  * data to be ensured and, more generally, to use and operate it in the
28  * same conditions as regards security.
29  *
30  * The fact that you are presently reading this means that you have had
31  * knowledge of the CeCILL-B license and that you accept its terms.
32  */
33 
34 
35 #ifndef ANATOMIST_PERFUSION_PERFPROCQTDECO_H
36 #define ANATOMIST_PERFUSION_PERFPROCQTDECO_H
37 
38 #include <aims/perfusion/perfProcCenter.h>
40 #include <QObject>
41 #include <list>
42 
43 
44 class QAPerfusionWindow;
45 
46 namespace anatomist
47 {
48  class Bucket;
49 }
50 
51 class QTreeWidgetItem;
52 
53 class PerfusionProcessingQtDecorator : public QObject
54 {
55  Q_OBJECT
56 
57  typedef void (*pMethod)( void *, int );
58 
59 public:
60 
61  PerfusionProcessingQtDecorator( aims::PerfusionProcessingCenter *,
64 
65  void initialize();
66 
67  static void doMaskCbk( void *, int );
68  static void doSkipCbk( void *, int );
69  static void doAifPointsCbk( void *, int );
70  static void doInjectionCbk( void *, int );
71  static void doQuantificationCbk( void *, int );
72  static void doAifCbk( void *, int );
73  static void doFitCbk( void *, int );
74  static void doDeconvolutionCbk( void *, int );
75  static void doMapsCbk( void *, int );
76 
77 public slots:
78 
79  void apply( int );
80 
81  void setTr( const QString& );
82  void setTe( const QString& );
83 
84  void setMaskFilter( bool );
85  void setBThreshold( int );
86  void setLVThreshold( int );
87  void setSkipThreshold( float );
88  void setSkip( int );
89  void setNAif( int );
90  void setAifThreshold( int );
91  void setPreInj( int );
92  void setAifType( int );
93  void setNAvg( int );
94  void setFitType( int );
95  void setCorrection( bool );
96  void setSVDType( int );
97  void setSVDThreshold( float );
98  void setDose( const QString& );
99  void setPhiGd( const QString& );
100 
101  void linkedCursor( QTreeWidgetItem *, int );
102 
103  void mapClicked( int );
104  void saveMaps();
105 
106 signals:
107 
108  void skipChanged( int );
109  void preInjChanged( int );
110 
111 private:
112 
113  static std::map< int, pMethod > mMeth;
114 
115  std::list< Point4dl > _selList;
116 
117  aims::PerfusionProcessingCenter *_ppBase;
118 
119  QAPerfusionWindow *_parent;
120 
122  anatomist::AObject *initial;
123 
124  anatomist::Bucket *bckMask;
125  anatomist::AVolume< float > *volQuant;
127  anatomist::AVolume< float > *volAifFit;
128  anatomist::AVolume< float > *volTSmooth;
130  anatomist::AVolume< float > *volDeconv;
135  anatomist::AVolume< float > *volDelay;
138 
139  void doMask( int );
140  void doSkip( int );
141  void doAifPoints( int );
142  void doInjection( int );
143  void doQuantification( int );
144  void doAif( int );
145  void doFit( int );
146  void doDeconvolution( int );
147  void doMaps( int );
148 };
149 
150 #endif
Base Anatomist object (abstract)
Definition: Object.h:95
#define slots
Volume< typename UnaryFunction::result_type > apply(const Volume< T > &vol, UnaryFunction func)
Bucket class.
Definition: Bucket.h:55