1#ifndef CONSTELLATION_BUNDLETOOLS_H
2#define CONSTELLATION_BUNDLETOOLS_H
5#include <aims/sparsematrix/sparseMatrix.h>
8#include <aims/mesh/texture.h>
9#include <aims/data/data.h>
32 int meshIntersectionMeshId);
33 const std::vector<constel::QuickMap> &
175 double meshDistanceThreshold = 0.,
176 double meshClosestPointMaxDistance = 1.,
bool verbose =
false);
202 std::vector<QuickMap>
225 double meshClosestPointMaxDistance = 7.,
bool verbose =
false);
274 double meshClosestPointMaxDistance = 7.,
bool verbose =
false);
303 const std::string &fileName);
326 unsigned meshVertexNb,
const std::string &file_name =
"",
327 const std::string &matrixRowsBundleNames_file_name =
"",
340 unsigned _meshVertexNb;
342 std::string _file_name;
343 std::string _matrixRowsBundleNames_file_name;
344 std::fstream _matrixRowsBundleNames_file;
362 unsigned meshVertexNb,
const std::string &file_name =
"",
363 const std::string &matrixRowsBundleNames_file_name =
"",
377 unsigned _meshVertexNb;
379 std::string _file_name;
380 std::string _matrixRowsBundleNames_file_name;
381 std::fstream _matrixRowsBundleNames_file;
395 bool verbose =
false);
399 boost::shared_ptr<constel::BundleConnections>
401 {
return _bundleMeshConnections;}
402 boost::shared_ptr<constel::ConnectionsLength>
404 {
return _bundleMeshConnectionsLength;}
405 std::vector< double >
407 {
return _bundleMeshConnectionsWeights;}
415 boost::shared_ptr<constel::BundleConnections> _bundleMeshConnections;
416 boost::shared_ptr<constel::ConnectionsLength> _bundleMeshConnectionsLength;
417 std::vector< double > _bundleMeshConnectionsWeights;
418 unsigned _bundleMeshConnectionsCount;
431 unsigned meshVertexNb,
int connectionLengthMin,
432 int connectionLengthMax,
double meshDistanceThreshold = 0.);
436 boost::shared_ptr<AimsData< float > >
438 {
return _meshConnectionsHistoLength_ptr;}
445 unsigned _bundleMeshConnectionsCount;
446 unsigned _meshVertexNb;
449 boost::shared_ptr<AimsData< float > > _meshConnectionsHistoLength_ptr;
451 int _connectionLengthMin;
454 int _connectionLengthMax;
457 double _meshDistanceThreshold;
459 double _square_sigma;
472 const std::string &fileName);
virtual ~AfficheAntFiberPointBundleListener()
virtual void newFiberPoint(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &, const aims::FiberPoint &)
AfficheAntFiberPointBundleListener(BundleInteractionReader &bundleInteractionReader)
(2022/10/10 reverse engineering, Denis) This class is a BundleReader with an additional protected var...
virtual ~BundleInteractionReader()
friend class MemAntBundleListener
friend class MeshHistoLengthConnectionBundleListener
friend class CurvilinearAbscissaBundleListener
friend class MeshIntersectionMatrixBundleListener
friend class SubSamplerFromMeshIntersectionBundleListener
friend class MeshIntersectionMatrixWithLengthBundleListener
friend class MeshIntersectionNoSmoothingBundleListener
ListenedFiberInfo _listenedFiberInfo
friend class MeshIntersectionNoSmoothingFasterBundleListener
friend class FiberNameAccordingToMeshTextureIntersectionBundleListener
friend class MeshIntersectionBundleListener
BundleInteractionReader(const std::string &fileName)
friend class FiberNameAccordingToMeshIntersectionBundleListener
friend class SavingMeshIntersectionBundleListener
friend class AfficheAntFiberPointBundleListener
friend class MeshConnectionBundleListener
virtual ~CurvilinearAbscissaBundleListener()
virtual void fiberStarted(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
CurvilinearAbscissaBundleListener(BundleInteractionReader &bundleInteractionReader)
virtual void newFiberPoint(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &, const aims::FiberPoint &)
unsigned _fiberPointCount
virtual ~FiberNameAccordingToMeshIntersectionBundleListener()
virtual void fiberTerminated(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
FiberNameAccordingToMeshIntersectionBundleListener(BundleInteractionReader &bundleInteractionReader, const std::string &fileName)
FiberNameAccordingToMeshTextureIntersectionBundleListener(BundleInteractionReader &bundleInteractionReader, const TimeTexture< short > &labeled_tex, const std::string &fileName)
virtual ~FiberNameAccordingToMeshTextureIntersectionBundleListener()
virtual void fiberTerminated(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
const Texture< short > & _labeledTex0
virtual void fiberStarted(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
std::set< short > _intersectionPointsMeshClosestPointsTexLabels_set
virtual void newFiberPoint(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &, const aims::FiberPoint &)
std::vector< int > getFiberMeshIntersectionMeshIdentityVector() const
const std::vector< constel::QuickMap > & getFiberIntersectionNeighDistMapVector() const
void pushBackMeshIntersectionNeighbourhood(const constel::QuickMap &fiberIntersectionNeighDistMap, int meshIntersectionMeshId)
std::vector< QuickMap > _fiberIntersectionNeighDistMapVector
std::vector< float > _fiberMeshIntersectionCurvilinearAbscissaVector
void setAntFiberPointMeshClosestPointIndex(std::size_t meshVertex_index)
float _curvilinearAbscissa
std::vector< std::size_t > _fiberMeshIntersectionNbVector
std::vector< int > _fiberMeshIntersectionMeshIdentityVector
ListenedFiberInfo(int id)
aims::FiberPoint _antFiberPoint
bool getAntFiberPointExistingMeshIntersection() const
void setCurvilinearAbscissa(float value)
float getCurvilinearAbscissa() const
std::size_t _antFiberPointMeshClosestPoint_index
bool _antFiberPoint_ExistingMeshIntersection
void setAntFiberPointExistingMeshIntersection(bool intersect)
void setAntFiberPoint(aims::FiberPoint antFiberPoint)
std::size_t getAntFiberPointMeshClosestPointIndex() const
aims::FiberPoint getAntFiberPoint() const
std::vector< float > getFiberMeshIntersectionCurvilinearAbscissaVector() const
void clearFiberMeshIntersectionInfo()
virtual void newFiberPoint(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &, const aims::FiberPoint &)
MemAntBundleListener(BundleInteractionReader &bundleInteractionReader)
virtual ~MemAntBundleListener()
virtual void fiberTerminated(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
boost::shared_ptr< constel::BundleConnections > getBundleMeshConnections() const
boost::shared_ptr< constel::ConnectionsLength > getBundleMeshConnectionsLength() const
virtual ~MeshConnectionBundleListener()
std::vector< double > getBundleMeshConnectionsWeights() const
MeshConnectionBundleListener(BundleInteractionReader &bundleInteractionReader, int meshIdentity, bool verbose=false)
virtual void fiberTerminated(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
boost::shared_ptr< AimsData< float > > getBundleMeshConnectionsHistoLength() const
MeshHistoLengthConnectionBundleListener(BundleInteractionReader &bundleInteractionReader, int meshIdentity, unsigned meshVertexNb, int connectionLengthMin, int connectionLengthMax, double meshDistanceThreshold=0.)
virtual ~MeshHistoLengthConnectionBundleListener()
constel::KDTree * _mesh_kdt_ptr
PolygonsByVertexIndex _meshPolygonsByVertex_Index
virtual void fiberTerminated(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
virtual void fiberStarted(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
float _antFiberPointMeshClosestPoint_dist
std::size_t _fiberPointCount
bool _antFiberPoint_ExistingMeshIntersection
virtual ~MeshIntersectionBundleListener()
std::size_t _antFiberPointMeshClosestPoint_index
virtual void noMoreBundle(const aims::BundleProducer &)
double _meshDistanceThreshold
std::vector< QuickMap > _meshDistanceThresholdNeighborhoodByVertex
void setMeshIdentity(int meshIdentity)
MeshIntersectionBundleListener(const AimsSurfaceTriangle &aimsMesh, BundleInteractionReader &bundleInteractionReader, double meshDistanceThreshold=0., double meshClosestPointMaxDistance=1., bool verbose=false)
double _meshClosestPointMaxDistance
const AimsSurfaceTriangle & _aimsMesh
virtual void newFiberPoint(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &, const aims::FiberPoint &)
BundleInteractionReader * _bundleInteractionReader
virtual void noMoreBundle(const aims::BundleProducer &bundleProducer)
virtual void bundleStarted(const aims::BundleProducer &, const aims::BundleInfo &)
MeshIntersectionMatrixBundleListener(BundleInteractionReader &bundleInteractionReader, int meshIdentity, unsigned meshVertexNb, const std::string &file_name="", const std::string &matrixRowsBundleNames_file_name="", int bundlesNb=1)
virtual void fiberTerminated(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
virtual ~MeshIntersectionMatrixBundleListener()
virtual void bundleStarted(const aims::BundleProducer &, const aims::BundleInfo &)
virtual void fiberTerminated(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
virtual ~MeshIntersectionMatrixWithLengthBundleListener()
MeshIntersectionMatrixWithLengthBundleListener(BundleInteractionReader &bundleInteractionReader, int meshIdentity, unsigned meshVertexNb, const std::string &file_name="", const std::string &matrixRowsBundleNames_file_name="", int bundlesNb=1)
virtual void noMoreBundle(const aims::BundleProducer &bundleProducer)
virtual void noMoreBundle(const aims::BundleProducer &)
bool _antFiberPoint_ExistingMeshIntersection
virtual ~MeshIntersectionNoSmoothingBundleListener()
const AimsSurfaceTriangle & _aimsMesh
std::size_t _antFiberPointMeshClosestPoint_index
void setMeshIdentity(int meshIdentity)
PolygonsByVertexIndex _meshPolygonsByVertex_Index
virtual void fiberStarted(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
virtual void newFiberPoint(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &, const aims::FiberPoint &)
double _meshClosestPointMaxDistance
virtual void fiberTerminated(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
std::size_t _fiberPointCount
BundleInteractionReader * _bundleInteractionReader
constel::KDTree * _mesh_kdt_ptr
MeshIntersectionNoSmoothingBundleListener(const AimsSurfaceTriangle &aimsMesh, BundleInteractionReader &bundleInteractionReader, double meshClosestPointMaxDistance=7., bool verbose=false)
float _antFiberPointMeshClosestPoint_dist
virtual void newFiberPoint(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &, const aims::FiberPoint &)
void setMeshIdentity(int meshIdentity)
virtual ~MeshIntersectionNoSmoothingFasterBundleListener()
virtual void noMoreBundle(const aims::BundleProducer &)
virtual void fiberTerminated(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
MeshIntersectionNoSmoothingFasterBundleListener(const AimsSurfaceTriangle &aimsMesh, AimsData< short > &roisMask, BundleInteractionReader &bundleInteractionReader, double meshClosestPointMaxDistance=7., bool verbose=false)
virtual void fiberStarted(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
AimsData< short > & _roisMask
bool _antFiberPoint_inRoisMask
virtual void fiberTerminated(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
virtual ~SavingMeshIntersectionBundleListener()
SavingMeshIntersectionBundleListener(BundleInteractionReader &bundleInteractionReader, const std::string &fileName)
std::size_t _fiberPointCount
std::vector< std::string > _names
virtual void bundleStarted(const aims::BundleProducer &bundleProducer, const aims::BundleInfo &bundleInfo)
SubSamplerFromMeshIntersectionBundleListener(BundleInteractionReader &bundleInteractionReader, int step)
virtual void newFiberPoint(const aims::BundleProducer &bundleProducer, const aims::BundleInfo &bundleInfo, const aims::FiberInfo &fiberInfo, const aims::FiberPoint &point)
virtual void noMoreBundle(const aims::BundleProducer &bundleProducer)
virtual void fiberStarted(const aims::BundleProducer &bundleProducer, const aims::BundleInfo &bundleInfo, const aims::FiberInfo &fiberInfo)
virtual void bundleTerminated(const aims::BundleProducer &, const aims::BundleInfo &)
virtual ~SubSamplerFromMeshIntersectionBundleListener()
virtual void fiberTerminated(const aims::BundleProducer &, const aims::BundleInfo &, const aims::FiberInfo &)
aims::Polyline::Point_t FiberPoint
KDTree::KDTree< 3, std::pair< uint, Point3df >, Bracket_accessor_PointIndex< Point3df > > KDTree
std::vector< std::pair< std::size_t, double > > QuickMap
std::vector< std::set< unsigned > > PolygonsByVertexIndex
std::vector< Fiber > Fibers
std::vector< Point > Fiber
std::vector< Fibers > BundlesSet
AIMSDATA_API AimsTimeSurface< 3, Void > AimsSurfaceTriangle