36#ifndef AIMS_FIBERS_BUNDLES_H
37#define AIMS_FIBERS_BUNDLES_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>
62class Bundle :
public std::vector< aims::Polyline >
71class Bundles :
public std::map< std::string, Bundle >
103 inline int id()
const;
104 inline double weight()
const;
105 inline void setId(
int id );
129 inline int id()
const;
130 inline std::string
name()
const;
212 typedef std::vector< BundleListener * > BundleListenerList;
213 BundleListenerList _bundleListeners;
294 const std::string & format =
"ALL" );
310 std::string _fileName;
335 std::string _fileName;
355 std::string _fileName;
437 std::string _fileName;
450 bool keepOriginalBundle =
false );
469 typedef std::vector< FiberPoint > FiberPoints;
470 typedef std::vector< FiberPoints > Fibers;
472 std::map< std::string, std::map< std::pair<int,int>, Fibers > >
477 FiberPoints _currentPoints;
478 bool _keepOriginalBundle;
493 float defaultROIMinimumOverlap = 0 );
512 typedef std::vector< FiberPoint > FiberPoints;
514 std::vector< uint32_t > _crossedROI;
515 FiberPoints _currentPoints;
516 std::map< std::string, std::vector< FiberPoints > > _result;
522 std::vector< bool > mustBeCrossed;
524 std::vector< SelectionRule > _selectionRules;
525 float _defaultROIMinimumOverlap;
587 double _minimumLength;
588 double _currentLength;
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 &)
friend class BundleProducer
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 &)
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 carto::Object readHeader()
virtual void fiberTerminated(const BundleProducer &, const BundleInfo &, const FiberInfo &)
virtual void noMoreBundle(const BundleProducer &)
virtual ~BundleToGraphWriter()
void setFileString(const std::string &)
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
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
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)
AimsVector< Scalar_t, 3 > Point_t
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)
aims::AffineTransformation3d Motion
AimsVector< float, 3 > Point3df