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)