aimsdata  5.1.2
Neuroimaging data handling
bundles.h
Go to the documentation of this file.
1 /* Copyright (c) 1995-2005 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_BUNDLES_H
37 #define AIMS_FIBERS_BUNDLES_H
38 
39 #include <aims/curve/curve.h>
40 #include <aims/mesh/surface.h>
41 #include <aims/vector/vector.h>
42 #include <aims/resampling/motion.h>
43 #include <aims/io/motionR.h>
44 #include <aims/roi/roiIterator.h>
45 #include <graph/graph/graph.h>
46 #include <cartobase/smart/rcptr.h>
49 #include <fstream>
50 #include <vector>
51 #include <map>
52 #include <string>
53 
54 
55 namespace aims
56 {
57 
58 
59  //----------//
60  // Bundle //
61 //----------//
62 
63 class Bundle : public std::vector< aims::Polyline >
64 {
65 };
66 
67 
68  //-----------//
69  // Bundles //
70 //-----------//
71 
72 class Bundles : public std::map< std::string, Bundle >
73 {
74 };
75 
76 
77  //------------------------------------------------//
78  // Froward classes, smart pointers and typedefs //
79 //------------------------------------------------//
80 
81 class Bundle;
82 class BundleListener;
83 class BundleProducer;
84 
88 
90 
91 
92  //-------------//
93  // FiberInfo //
94 //-------------//
95 
96 class FiberInfo
97 {
98 public:
99 
100  inline FiberInfo();
101  inline FiberInfo( int id );
102  inline FiberInfo( int id, double weight );
103  inline FiberInfo( const FiberInfo & fiber );
104  inline int id() const;
105  inline double weight() const;
106  inline void setId( int id );
107 
108  inline FiberInfo & operator = ( const FiberInfo & fiber );
109 
110 protected:
111 
112  int _id;
113  double _weight;
114 };
115 
116 
117  //--------------//
118  // BundleInfo //
119 //--------------//
120 
122 {
123 public:
124 
125  inline BundleInfo();
126  inline BundleInfo( const std::string &name );
127  inline BundleInfo( int id );
128  inline BundleInfo( int id, const std::string &name );
129  inline BundleInfo( const BundleInfo & bundle );
130  inline int id() const;
131  inline std::string name() const;
132 
133  inline BundleInfo & operator = ( const BundleInfo & bundle );
134 
135 protected:
136 
137  int _id;
138  std::string _name;
139 };
140 
141 
142  //------------------//
143  // BundleListener //
144 //------------------//
145 
163 {
164 protected:
165 
166  friend class BundleProducer;
167 
168  virtual void bundleStarted( const BundleProducer &, const BundleInfo & ) ;
169  virtual void bundleTerminated( const BundleProducer &, const BundleInfo & );
170  virtual void fiberStarted( const BundleProducer &, const BundleInfo &,
171  const FiberInfo & );
172  virtual void fiberTerminated( const BundleProducer &, const BundleInfo &,
173  const FiberInfo & );
174  virtual void newFiberPoint( const BundleProducer &, const BundleInfo &,
175  const FiberInfo &, const FiberPoint & );
176  virtual void noMoreBundle( const BundleProducer & );
177 
178 public:
179  virtual ~BundleListener();
180 };
181 
182 
183  //------------------//
184  // BundleProducer //
185 //------------------//
186 
196 {
197 public:
198 
200 
201 protected:
202 
203  void startBundle( const BundleInfo & );
204  void terminateBundle( const BundleInfo & );
205  void startFiber( const BundleInfo &, const FiberInfo & );
206  void terminateFiber( const BundleInfo &, const FiberInfo & );
207  void addFiberPoint( const BundleInfo &, const FiberInfo &,
208  const FiberPoint & );
209  void noMoreBundle();
210 
211 private:
212 
213  typedef std::vector< BundleListener * > BundleListenerList;
214  BundleListenerList _bundleListeners;
215 };
216 
217 
218 
219  //----------------//
220  // BundleWriter //
221 //----------------//
222 
223 // WARNING : This class should be a real writer in aimsdata but I prefer to
224 // keep it here until the format is a bit more stable.
225 
232 class BundleWriter : public virtual BundleListener, public carto::PropertySet
233 {
234 public:
235 
238  void setFileString( const std::string &fileName );
239  virtual ~BundleWriter();
240 
241  typedef std::vector< FiberPoint > FiberPoints;
242 
243  virtual void bundleStarted( const BundleProducer &, const BundleInfo & );
244  virtual void bundleTerminated( const BundleProducer &, const BundleInfo & );
245  virtual void fiberStarted( const BundleProducer &, const BundleInfo &,
246  const FiberInfo & );
247  virtual void fiberTerminated( const BundleProducer &, const BundleInfo &,
248  const FiberInfo & );
249  virtual void newFiberPoint( const BundleProducer &, const BundleInfo &,
250  const FiberInfo &, const FiberPoint & );
251  virtual void noMoreBundle( const BundleProducer & );
252  virtual void checkStreams();
253  virtual void addFiber( const BundleProducer &, const BundleInfo &,
254  const FiberInfo &, FiberPoint*, int &);
255 
256 protected:
257  int _ascii;
258  std::string _fileName;
260  std::ofstream _dataFile;
264 };
265 
266 
267 
268  //----------------//
269  // BundleReader //
270 //----------------//
271 
272 // WARNING : This class should be a real writer in aimsdata but I prefer to
273 // keep it here until the format is a bit more stable.
274 
283 {
284 public:
285 
286  BundleReader( const std::string &fileName );
287  virtual ~BundleReader();
288 
291  void read();
293  static std::set<std::string> supportedFormats();
294  static std::set<std::string> formatExtensions(
295  const std::string & format = "ALL" );
296 
297 protected:
298 
299  virtual void bundleStarted( const BundleProducer &, const BundleInfo & );
300  virtual void bundleTerminated( const BundleProducer &, const BundleInfo & );
301  virtual void fiberStarted( const BundleProducer &, const BundleInfo &,
302  const FiberInfo & );
303  virtual void fiberTerminated( const BundleProducer &, const BundleInfo &,
304  const FiberInfo & );
305  virtual void newFiberPoint( const BundleProducer &, const BundleInfo &,
306  const FiberInfo &, const FiberPoint & );
307  virtual void noMoreBundle( const BundleProducer & );
308 
309 private:
310 
311  std::string _fileName;
312 };
313 
314 
315  //----------------------//
316  // BundleFormatReader //
317 //----------------------//
318 
319 // WARNING : This class should be a real writer in aimsdata but I prefer to
320 // keep it here until the format is a bit more stable.
321 
325 {
326 public:
327 
330 
331  virtual void read() = 0;
333 
334 private:
335 
336  std::string _fileName;
337 };
338 
339 
345 {
346 public:
347 
348  ConnectomistBundlesReader( const std::string &fileName );
350 
351  virtual void read();
353 
354 private:
355 
356  std::string _fileName;
357 };
358 
359 
360  //-----------------//
361  // BundleToGraph //
362 //-----------------//
363 
373  virtual public carto::PropertySet
374 {
375 public:
376 
379  virtual ~BundleToGraph();
380 
381  inline const carto::rc_ptr< Graph > &getGraph() const;
382 
383 protected:
384 
385  virtual void bundleStarted( const BundleProducer &, const BundleInfo & );
386  virtual void bundleTerminated( const BundleProducer &, const BundleInfo & );
387  virtual void fiberStarted( const BundleProducer &, const BundleInfo &,
388  const FiberInfo & );
389  virtual void fiberTerminated( const BundleProducer &, const BundleInfo &,
390  const FiberInfo & );
391  virtual void newFiberPoint( const BundleProducer &, const BundleInfo &,
392  const FiberInfo &, const FiberPoint & );
393  virtual void noMoreBundle( const BundleProducer & );
394  virtual void parametersValueChanged();
395  void parameterChangedSlot( const carto::Object &, const std::string &,
396  const carto::Object & );
398 
402  float _width;
404  std::vector< Point2df > _section;
405  std::vector<int> _boundingbox_min;
406  std::vector<int> _boundingbox_max;
410 
416 };
417 
418 
419 
420  //-----------------------//
421  // BundleToGraphWriter //
422 //-----------------------//
423 
425 {
426 public:
427 
428  inline virtual ~BundleToGraphWriter();
429 
430  void setFileString( const std::string & );
431 
432 protected:
433 
434  virtual void noMoreBundle( const BundleProducer & );
435 
436 private:
437 
438  std::string _fileName;
439 };
440 
441 
442  //------------------//
443  // BundleROISplit //
444 //------------------//
445 
447 {
448 public:
449 
451  bool keepOriginalBundle = false );
452  virtual ~BundleROISplit();
453 
454 protected:
455 
456  virtual void bundleStarted( const BundleProducer &, const BundleInfo & );
457  virtual void bundleTerminated( const BundleProducer &, const BundleInfo & );
458  virtual void fiberStarted( const BundleProducer &, const BundleInfo &,
459  const FiberInfo & );
460  virtual void fiberTerminated( const BundleProducer &, const BundleInfo &,
461  const FiberInfo & );
462  virtual void newFiberPoint( const BundleProducer &, const BundleInfo &,
463  const FiberInfo &, const FiberPoint & );
464  virtual void noMoreBundle( const BundleProducer & );
465 
466 private:
467 
469 
470  typedef std::vector< FiberPoint > FiberPoints;
471  typedef std::vector< FiberPoints > Fibers;
472 
473  std::map< std::string, std::map< std::pair<int,int>, Fibers > >
474  _result;
475 
476  int _currentLabel;
477  int _lastLabel;
478  FiberPoints _currentPoints;
479  bool _keepOriginalBundle;
480 };
481 
482 
483 
484  //-------------------//
485  // BundleROISelect //
486 //-------------------//
487 
489 {
490 public:
491 
493  const std::string &,
494  float defaultROIMinimumOverlap = 0 );
495  virtual ~BundleROISelect();
496 
497 protected:
498 
499  virtual void bundleStarted( const BundleProducer &, const BundleInfo & );
500  virtual void bundleTerminated( const BundleProducer &, const BundleInfo & );
501  virtual void fiberStarted( const BundleProducer &, const BundleInfo &,
502  const FiberInfo & );
503  virtual void fiberTerminated( const BundleProducer &, const BundleInfo &,
504  const FiberInfo & );
505  virtual void newFiberPoint( const BundleProducer &, const BundleInfo &,
506  const FiberInfo &, const FiberPoint & );
507  virtual void noMoreBundle( const BundleProducer & );
508 
509 private:
510 
512 
513  typedef std::vector< FiberPoint > FiberPoints;
514 
515  std::vector< uint32_t > _crossedROI;
516  FiberPoints _currentPoints;
517  std::map< std::string, std::vector< FiberPoints > > _result;
518 
519  struct SelectionRule
520  {
521  std::string name;
522  uint32_t min, max;
523  std::vector< bool > mustBeCrossed;
524  };
525  std::vector< SelectionRule > _selectionRules;
526  float _defaultROIMinimumOverlap;
527 };
528 
529 
530 
531  //----------------//
532  // BundleMotion //
533 //----------------//
534 
536 {
537 public:
538 
539  BundleMotion( const std::string & );
540  BundleMotion( const Motion & );
541  virtual ~BundleMotion();
542 
543 protected:
544 
545  virtual void bundleStarted( const BundleProducer &, const BundleInfo & );
546  virtual void bundleTerminated( const BundleProducer &, const BundleInfo & );
547  virtual void fiberStarted( const BundleProducer &, const BundleInfo &,
548  const FiberInfo & );
549  virtual void fiberTerminated( const BundleProducer &, const BundleInfo &,
550  const FiberInfo & );
551  virtual void newFiberPoint( const BundleProducer &, const BundleInfo &,
552  const FiberInfo &, const FiberPoint & );
553  virtual void noMoreBundle( const BundleProducer & );
554 
555 private:
556 
557  Motion _motion;
558 };
559 
560 
561  //------------------//
562  // CurveSelection //
563 //------------------//
564 
566 {
567 public:
568 
569  CurveSelection( const double &minimumLength );
570  virtual ~CurveSelection();
571 
572 protected:
573 
574  typedef std::vector< FiberPoint > FiberPoints;
575 
576  virtual void bundleStarted( const BundleProducer &, const BundleInfo & );
577  virtual void bundleTerminated( const BundleProducer &, const BundleInfo & );
578  virtual void fiberStarted( const BundleProducer &, const BundleInfo &,
579  const FiberInfo & );
580  virtual void fiberTerminated( const BundleProducer &, const BundleInfo &,
581  const FiberInfo & );
582  virtual void newFiberPoint( const BundleProducer &, const BundleInfo &,
583  const FiberInfo &, const FiberPoint & );
584  virtual void noMoreBundle( const BundleProducer & );
585 
586 private:
587 
588  double _minimumLength;
589  double _currentLength;
590  FiberPoints _currentPoints;
591 };
592 
593 
594  //--------------------//
595  // CurveOrientation //
596 //--------------------//
597 
599 {
600 public:
601 
603  virtual ~CurveOrientation();
604 
605 protected:
606 
607  typedef std::vector< FiberPoint > FiberPoints;
608 
609  virtual void bundleStarted( const BundleProducer &, const BundleInfo & );
610  virtual void bundleTerminated( const BundleProducer &, const BundleInfo & );
611  virtual void fiberStarted( const BundleProducer &, const BundleInfo &,
612  const FiberInfo & );
613  virtual void fiberTerminated( const BundleProducer &, const BundleInfo &,
614  const FiberInfo & );
615  virtual void newFiberPoint( const BundleProducer &, const BundleInfo &,
616  const FiberInfo &, const FiberPoint & );
617  virtual void noMoreBundle( const BundleProducer & );
618 
619 private:
620 
621  FiberPoint _beginSum;
623  FiberPoints _currentPoints;
624 };
625 
626 
627 
628 
629  //-------------//
630  // FiberInfo //
631 //-------------//
632 
633 //-----------------------------------------------------------------------------
635  : _id( 0 ), _weight( 1.0 )
636 {}
637 
638 
639 //-----------------------------------------------------------------------------
640 inline FiberInfo::FiberInfo( int id ) :
641  _id( id ), _weight( 1.0 )
642 {}
643 
644 
645 //-----------------------------------------------------------------------------
646 inline FiberInfo::FiberInfo( int id, double weight ) :
647  _id( id ), _weight( weight )
648 {}
649 
650 
651 //-----------------------------------------------------------------------------
652 inline FiberInfo::FiberInfo( const FiberInfo & fiber )
653  : _id( fiber.id() ), _weight( fiber.weight() )
654 {}
655 
656 
657 //-----------------------------------------------------------------------------
658 inline int FiberInfo::id() const
659 {
660  return _id;
661 }
662 
663 //-----------------------------------------------------------------------------
664 inline double FiberInfo::weight() const
665 {
666  return _weight;
667 }
668 
669 //-----------------------------------------------------------------------------
670 inline void FiberInfo::setId( int id )
671 {
672  _id = id;
673 }
674 
675 //-----------------------------------------------------------------------------
676 inline FiberInfo & FiberInfo::operator = ( const FiberInfo & fiber )
677 {
678  _id = fiber.id();
679  _weight = fiber.weight();
680 
681  return *this;
682 }
683 
684 
685  //--------------//
686  // BundleInfo //
687 //--------------//
688 
689 //-----------------------------------------------------------------------------
691 {}
692 
693 
694 //-----------------------------------------------------------------------------
695 inline BundleInfo::BundleInfo( const std::string &name ) :
696  _name( name )
697 {}
698 
699 
700 //-----------------------------------------------------------------------------
701 inline BundleInfo::BundleInfo( int id ) :
702  _id( id )
703 {}
704 
705 
706 //-----------------------------------------------------------------------------
707 inline BundleInfo::BundleInfo( int id, const std::string &name ) :
708  _id( id ), _name( name )
709 {}
710 
711 
712 //-----------------------------------------------------------------------------
713 inline BundleInfo::BundleInfo( const BundleInfo & bundle ) :
714  _id( bundle.id() ), _name( bundle.name() )
715 {}
716 
717 
718 //-----------------------------------------------------------------------------
719 inline std::string BundleInfo::name() const
720 {
721  return _name;
722 }
723 
724 
725 //-----------------------------------------------------------------------------
726 inline int BundleInfo::id() const
727 {
728  return _id;
729 }
730 
731 //-----------------------------------------------------------------------------
733 {
734  _id = bundle.id();
735  _name = bundle.name();
736 
737  return *this;
738 }
739 
740  //-----------------//
741  // BundleToGraph //
742 //-----------------//
743 
744 //-----------------------------------------------------------------------------
746 {
747  return _rcptrMeshResult;
748 }
749 
750 
751  //-----------------------//
752  // BundleToGraphWriter //
753 //-----------------------//
754 
755 //-----------------------------------------------------------------------------
757 {
758 }
759 
760 } // namespace comist
761 
762 #endif // ifndef AIMS_FIBERS_BUNDLES_H
Virtual base class for bundles/fibers file formats support.
Definition: bundles.h:325
virtual carto::Object readHeader()
virtual void read()=0
std::string _name
Definition: bundles.h:138
int id() const
Definition: bundles.h:726
BundleInfo & operator=(const BundleInfo &bundle)
Definition: bundles.h:732
std::string name() const
Definition: bundles.h:719
Serial processing of bundles.
Definition: bundles.h:163
virtual void bundleTerminated(const BundleProducer &, const BundleInfo &)
virtual ~BundleListener()
virtual void newFiberPoint(const BundleProducer &, const BundleInfo &, const FiberInfo &, const FiberPoint &)
virtual void fiberTerminated(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual void noMoreBundle(const BundleProducer &)
virtual void bundleStarted(const BundleProducer &, const BundleInfo &)
virtual void fiberStarted(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual ~BundleMotion()
BundleMotion(const std::string &)
virtual void bundleStarted(const BundleProducer &, const BundleInfo &)
virtual void fiberStarted(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual void noMoreBundle(const BundleProducer &)
virtual void fiberTerminated(const BundleProducer &, const BundleInfo &, const FiberInfo &)
BundleMotion(const Motion &)
virtual void newFiberPoint(const BundleProducer &, const BundleInfo &, const FiberInfo &, const FiberPoint &)
virtual void bundleTerminated(const BundleProducer &, const BundleInfo &)
Serial processing of bundles.
Definition: bundles.h:196
void terminateBundle(const BundleInfo &)
void terminateFiber(const BundleInfo &, const FiberInfo &)
void addBundleListener(BundleListener &)
void startBundle(const BundleInfo &)
void startFiber(const BundleInfo &, const FiberInfo &)
void addFiberPoint(const BundleInfo &, const FiberInfo &, const FiberPoint &)
virtual void fiberTerminated(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual void bundleStarted(const BundleProducer &, const BundleInfo &)
virtual ~BundleROISelect()
virtual void bundleTerminated(const BundleProducer &, const BundleInfo &)
BundleROISelect(carto::rc_ptr< aims::RoiIterator > roiIterator, const std::string &, float defaultROIMinimumOverlap=0)
virtual void newFiberPoint(const BundleProducer &, const BundleInfo &, const FiberInfo &, const FiberPoint &)
virtual void fiberStarted(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual void noMoreBundle(const BundleProducer &)
virtual void bundleStarted(const BundleProducer &, const BundleInfo &)
virtual void noMoreBundle(const BundleProducer &)
virtual void fiberStarted(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual void fiberTerminated(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual ~BundleROISplit()
virtual void bundleTerminated(const BundleProducer &, const BundleInfo &)
BundleROISplit(carto::rc_ptr< aims::RoiIterator > roiIterator, bool keepOriginalBundle=false)
virtual void newFiberPoint(const BundleProducer &, const BundleInfo &, const FiberInfo &, const FiberPoint &)
Reads a bundles file, and emits events while walking through its data.
Definition: bundles.h:283
static std::set< std::string > formatExtensions(const std::string &format="ALL")
virtual void fiberStarted(const BundleProducer &, const BundleInfo &, const FiberInfo &)
void read()
read() is the entry point to fibers processing, and triggers the producer machinery.
virtual void bundleStarted(const BundleProducer &, const BundleInfo &)
BundleReader(const std::string &fileName)
virtual void newFiberPoint(const BundleProducer &, const BundleInfo &, const FiberInfo &, const FiberPoint &)
virtual void bundleTerminated(const BundleProducer &, const BundleInfo &)
static std::set< std::string > supportedFormats()
virtual void noMoreBundle(const BundleProducer &)
virtual ~BundleReader()
virtual carto::Object readHeader()
virtual void fiberTerminated(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual void noMoreBundle(const BundleProducer &)
virtual ~BundleToGraphWriter()
Definition: bundles.h:756
void setFileString(const std::string &)
Bundles structure building as a Graph.
Definition: bundles.h:374
Point3df _relatveFiberStartPos
Definition: bundles.h:408
std::vector< Point2df > _section
Definition: bundles.h:404
virtual void noMoreBundle(const BundleProducer &)
carto::rc_ptr< Graph > _rcptrMeshResult
Definition: bundles.h:400
std::vector< int > _boundingbox_max
Definition: bundles.h:406
virtual void bundleTerminated(const BundleProducer &, const BundleInfo &)
carto::rc_ptr< AimsTimeSurface< 2, Void > > _currentLines
Definition: bundles.h:414
Graph * _meshResult
Definition: bundles.h:399
carto::rc_ptr< AimsSurfaceTriangle > _currentMesh
Definition: bundles.h:413
virtual void bundleStarted(const BundleProducer &, const BundleInfo &)
void parameterChangedSlot(const carto::Object &, const std::string &, const carto::Object &)
virtual void fiberTerminated(const BundleProducer &, const BundleInfo &, const FiberInfo &)
float _minimumLength
Definition: bundles.h:401
const carto::rc_ptr< Graph > & getGraph() const
Definition: bundles.h:745
virtual void fiberStarted(const BundleProducer &, const BundleInfo &, const FiberInfo &)
aims::Polyline _currentCurve
Definition: bundles.h:412
virtual void newFiberPoint(const BundleProducer &, const BundleInfo &, const FiberInfo &, const FiberPoint &)
bool _autoFiberStartPos
Definition: bundles.h:409
virtual void parametersValueChanged()
Vertex * _currentVertex
Definition: bundles.h:411
bool _normalsAsFiberStartPos
Definition: bundles.h:407
size_t _current_fibers_count
Definition: bundles.h:415
virtual ~BundleToGraph()
std::vector< int > _boundingbox_min
Definition: bundles.h:405
int _numPointsInMeshSection
Definition: bundles.h:403
Writes bundles information to a bundles file.
Definition: bundles.h:233
virtual void fiberTerminated(const BundleProducer &, const BundleInfo &, const FiberInfo &)
int _writtenFibersCount
Definition: bundles.h:262
std::ofstream _dataFile
Definition: bundles.h:260
virtual ~BundleWriter()
virtual void newFiberPoint(const BundleProducer &, const BundleInfo &, const FiberInfo &, const FiberPoint &)
std::string _fileName
Definition: bundles.h:258
virtual void bundleTerminated(const BundleProducer &, const BundleInfo &)
virtual void fiberStarted(const BundleProducer &, const BundleInfo &, const FiberInfo &)
std::vector< FiberPoint > FiberPoints
Definition: bundles.h:241
virtual void addFiber(const BundleProducer &, const BundleInfo &, const FiberInfo &, FiberPoint *, int &)
carto::Object _header
Definition: bundles.h:259
virtual void bundleStarted(const BundleProducer &, const BundleInfo &)
virtual void checkStreams()
virtual void noMoreBundle(const BundleProducer &)
int _firstFiberInBundle
Definition: bundles.h:261
FiberPoints _fiberPoints
Definition: bundles.h:263
void setFileString(const std::string &fileName)
set the output file name
Connectomist .bundles format reader.
Definition: bundles.h:345
ConnectomistBundlesReader(const std::string &fileName)
virtual carto::Object readHeader()
std::vector< FiberPoint > FiberPoints
Definition: bundles.h:607
virtual void noMoreBundle(const BundleProducer &)
virtual void fiberTerminated(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual void newFiberPoint(const BundleProducer &, const BundleInfo &, const FiberInfo &, const FiberPoint &)
virtual void bundleTerminated(const BundleProducer &, const BundleInfo &)
virtual void bundleStarted(const BundleProducer &, const BundleInfo &)
virtual void fiberStarted(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual void noMoreBundle(const BundleProducer &)
virtual void fiberStarted(const BundleProducer &, const BundleInfo &, const FiberInfo &)
CurveSelection(const double &minimumLength)
virtual void newFiberPoint(const BundleProducer &, const BundleInfo &, const FiberInfo &, const FiberPoint &)
virtual void bundleTerminated(const BundleProducer &, const BundleInfo &)
std::vector< FiberPoint > FiberPoints
Definition: bundles.h:574
virtual void fiberTerminated(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual void bundleStarted(const BundleProducer &, const BundleInfo &)
virtual ~CurveSelection()
double weight() const
Definition: bundles.h:664
void setId(int id)
Definition: bundles.h:670
int id() const
Definition: bundles.h:658
double _weight
Definition: bundles.h:113
FiberInfo & operator=(const FiberInfo &fiber)
Definition: bundles.h:676
float Scalar_t
Definition: curve.h:54
The class for EcatSino data write operation.
Definition: borderfiller.h:13
carto::rc_ptr< Bundle > RBundle
Definition: bundles.h:83
carto::rc_ptr< BundleProducer > RBundleProducer
Definition: bundles.h:87
carto::rc_ptr< BundleListener > RBundleListener
Definition: bundles.h:86
aims::Polyline::Point_t FiberPoint
Definition: bundles.h:89
T min(const Volume< T > &vol)
T max(const Volume< T > &vol)