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