aimsdata  4.7.0
Neuroimaging data handling
bundles_features.h
Go to the documentation of this file.
1 /* Copyright (c) 1995-2017 CEA
2  *
3  * This software and supporting documentation were developed by
4  * CEA/DSV/SHFJ
5  * 4 place du General Leclerc
6  * 91401 Orsay cedex
7  * France
8  *
9  * This software is governed by the CeCILL license version 2 under
10  * French law and abiding by the rules of distribution of free software.
11  * You can use, modify and/or redistribute the software under the
12  * terms of the CeCILL license version 2 as circulated by CEA, CNRS
13  * and INRIA at the following URL "http://www.cecill.info".
14  *
15  * As a counterpart to the access to the source code and rights to copy,
16  * modify and redistribute granted by the license, users are provided only
17  * with a limited warranty and the software's author, the holder of the
18  * economic rights, and the successive licensors have only limited
19  * liability.
20  *
21  * In this respect, the user's attention is drawn to the risks associated
22  * with loading, using, modifying and/or developing or reproducing the
23  * software by the user in light of its specific status of free software,
24  * that may mean that it is complicated to manipulate, and that also
25  * therefore means that it is reserved for developers and experienced
26  * professionals having in-depth computer knowledge. Users are therefore
27  * encouraged to load and test the software's suitability as regards their
28  * requirements in conditions enabling the security of their systems and/or
29  * data to be ensured and, more generally, to use and operate it in the
30  * same conditions as regards security.
31  *
32  * The fact that you are presently reading this means that you have had
33  * knowledge of the CeCILL license version 2 and that you accept its terms.
34  */
35 
36 #ifndef AIMS_FIBERS_BUNDLESFEATURES_H
37 #define AIMS_FIBERS_BUNDLESFEATURES_H
38 
39 
40 #include <iostream>
46 
47 
48 namespace aims {
49 
50  //-------------------//
51  // BundlesFeatures //
52 //-------------------//
53 
56 {
57 public:
59 
60  void addImageStatistics( const std::string &name,
62  void write( const std::string &fileName ) const;
63  void write( std::ostream &out ) const;
64 
65 
66 private:
67 
68  // BundleListener virtual methods
69  virtual void bundleStarted( const aims::BundleProducer &,
70  const aims::BundleInfo & );
71  virtual void bundleTerminated( const aims::BundleProducer &,
72  const aims::BundleInfo & );
73  virtual void fiberStarted( const aims::BundleProducer &,
74  const aims::BundleInfo &,
75  const aims::FiberInfo & );
76  virtual void fiberTerminated( const aims::BundleProducer &,
77  const aims::BundleInfo &,
78  const aims::FiberInfo & );
79  virtual void newFiberPoint( const aims::BundleProducer &,
80  const aims::BundleInfo &,
81  const aims::FiberInfo &,
82  const aims::FiberPoint & );
83  virtual void noMoreBundle( const aims::BundleProducer & );
84 
85  // BundleSlicerListener virtual methods
86  void startBundleSlicing( BundlesSlicer &slicer,
87  const aims::BundleInfo &bundle );
88  void newBundleSlice( BundlesSlicer &slicer,
89  const aims::BundleInfo &bundle, float abscissa,
90  const std::vector< aims::FiberPoint > &points );
91  void terminateBundleSlicing( BundlesSlicer &slicer,
92  const aims::BundleInfo &bundle );
93  void noMoreBundleSlice( BundlesSlicer &slicer );
94 
95  double _currentLength;
96  bool _firstPoint;
97  aims::FiberPoint _lastPoint;
98  int _fiberCount;
99 
100  typedef std::map< std::string,
101  carto::rc_ptr< aims::Interpolator > > Interpolators_t;
102  typedef std::map< std::string,
103  aims::ScalarFeaturesProvider::Scalar_t > String_Scalar_t;
104  typedef std::map< std::string,
105  std::vector< aims::ScalarFeaturesProvider::Scalar_t > >
106  String_ScalarSet_t;
107 
108  typedef std::map< std::string, std::map< std::string, String_Scalar_t > >
109  BundlesFeatures_t;
110  typedef std::map< std::string, std::map< std::string, String_ScalarSet_t > >
111  BundlesSliceFeatures_t;
112 
113 
114  aims::ScalarSetFeatures _scalarSetFeatures;
115  Interpolators_t _interpolators;
116 
117  carto::Object _result;
118 
119  String_ScalarSet_t _currentBundleFeaturesValues;
120 };
121 
122 
123 
124 
125 
126 
127 } // namespace aims
128 
129 #endif // ifndef AIMS_FIBERS_BUNDLESFEATURES_H
Serial processing of bundles.
Definition: bundles.h:152
The class for EcatSino data write operation.
Definition: border.h:42
void write(const std::string &fileName) const
void addImageStatistics(const std::string &name, const carto::rc_ptr< aims::Interpolator > &)
Serial processing of bundles.
Definition: bundles.h:185