36 #ifndef AIMS_FIBERS_BUNDLES_H
37 #define AIMS_FIBERS_BUNDLES_H
63 class Bundle :
public std::vector< aims::Polyline >
72 class Bundles :
public std::map< std::string, Bundle >
104 inline int id()
const;
105 inline double weight()
const;
106 inline void setId(
int id );
130 inline int id()
const;
131 inline std::string
name()
const;
213 typedef std::vector< BundleListener * > BundleListenerList;
214 BundleListenerList _bundleListeners;
295 const std::string & format =
"ALL" );
311 std::string _fileName;
336 std::string _fileName;
356 std::string _fileName;
438 std::string _fileName;
451 bool keepOriginalBundle =
false );
470 typedef std::vector< FiberPoint > FiberPoints;
471 typedef std::vector< FiberPoints > Fibers;
473 std::map< std::string, std::map< std::pair<int,int>, Fibers > >
478 FiberPoints _currentPoints;
479 bool _keepOriginalBundle;
494 float defaultROIMinimumOverlap = 0 );
513 typedef std::vector< FiberPoint > FiberPoints;
515 std::vector< uint32_t > _crossedROI;
516 FiberPoints _currentPoints;
517 std::map< std::string, std::vector< FiberPoints > > _result;
523 std::vector< bool > mustBeCrossed;
525 std::vector< SelectionRule > _selectionRules;
526 float _defaultROIMinimumOverlap;
588 double _minimumLength;
589 double _currentLength;
635 : _id( 0 ), _weight( 1.0 )
641 _id( id ), _weight( 1.0 )
647 _id( id ), _weight( weight )
653 : _id( fiber.id() ), _weight( fiber.weight() )
708 _id( id ), _name( name )
714 _id( bundle.id() ), _name( bundle.name() )
BundleInfo & operator=(const BundleInfo &bundle)
Serial processing of bundles.
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 &)
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.
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.
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 carto::Object readHeader()
virtual void fiberTerminated(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual void noMoreBundle(const BundleProducer &)
virtual ~BundleToGraphWriter()
void setFileString(const std::string &)
Bundles structure building as a Graph.
Point3df _relatveFiberStartPos
std::vector< Point2df > _section
virtual void noMoreBundle(const BundleProducer &)
carto::rc_ptr< Graph > _rcptrMeshResult
std::vector< int > _boundingbox_max
virtual void bundleTerminated(const BundleProducer &, const BundleInfo &)
carto::rc_ptr< AimsTimeSurface< 2, Void > > _currentLines
carto::rc_ptr< AimsSurfaceTriangle > _currentMesh
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
virtual void fiberStarted(const BundleProducer &, const BundleInfo &, const FiberInfo &)
aims::Polyline _currentCurve
virtual void newFiberPoint(const BundleProducer &, const BundleInfo &, const FiberInfo &, const FiberPoint &)
virtual void parametersValueChanged()
bool _normalsAsFiberStartPos
size_t _current_fibers_count
std::vector< int > _boundingbox_min
int _numPointsInMeshSection
Writes bundles information to a bundles file.
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 fiberStarted(const BundleProducer &, const BundleInfo &, const FiberInfo &)
std::vector< FiberPoint > FiberPoints
virtual void addFiber(const BundleProducer &, const BundleInfo &, const FiberInfo &, FiberPoint *, int &)
virtual void bundleStarted(const BundleProducer &, const BundleInfo &)
virtual void checkStreams()
virtual void noMoreBundle(const BundleProducer &)
void setFileString(const std::string &fileName)
set the output file name
Connectomist .bundles format reader.
ConnectomistBundlesReader(const std::string &fileName)
virtual carto::Object readHeader()
virtual ~ConnectomistBundlesReader()
std::vector< FiberPoint > FiberPoints
virtual void noMoreBundle(const BundleProducer &)
virtual void fiberTerminated(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual ~CurveOrientation()
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
virtual void fiberTerminated(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual void bundleStarted(const BundleProducer &, const BundleInfo &)
virtual ~CurveSelection()
FiberInfo & operator=(const FiberInfo &fiber)
The class for EcatSino data write operation.
carto::rc_ptr< Bundle > RBundle
carto::rc_ptr< BundleProducer > RBundleProducer
carto::rc_ptr< BundleListener > RBundleListener
aims::Polyline::Point_t FiberPoint
T min(const Volume< T > &vol)
T max(const Volume< T > &vol)