1#ifndef CONSTELLATION_CONNMATRIXTOOLS_H
2#define CONSTELLATION_CONNMATRIXTOOLS_H
4#include <aims/sparsematrix/sparseMatrix.h>
7#include <aims/mesh/surface.h>
8#include <aims/mesh/texture.h>
14 QuickMap &fiberExtremity2NeighMeshVertex,
double connectivityThreshold,
15 double distanceThreshold,
unsigned connectionLength = 1);
19 QuickMap &fiberExtremity2NeighMeshVertex);
23 QuickMap &fiberExtremity2NeighMeshVertex,
double connectivityThreshold,
24 double distanceThreshold,
unsigned connectionLength = 1);
28 QuickMap &fiberExtremity1NeighMeshVertex,
29 QuickMap &fiberExtremity2NeighMeshVertex,
double connectivityThreshold,
30 double distanceThreshold, std::size_t rowIndex_min,
31 std::size_t rowIndex_max = 0,
unsigned connectionLength = 1);
35 QuickMap &fiberExtremity2NeighMeshVertex_cols,
36 double connectivityThreshold,
double distanceThreshold);
40 std::vector< double > cortexConnectionsWeights,
41 double connectivityThreshold,
double distanceThreshold);
45 double connectivityThreshold,
double distanceThreshold,
46 std::size_t rowIndex_min = 0, std::size_t rowIndex_max = 0,
51 double connectivityThreshold,
double distanceThreshold,
52 unsigned length_min,
unsigned length_max,
57 double connectivityThreshold,
double distanceThreshold,
58 unsigned length_min,
unsigned length_max,
63 double connectivityThreshold,
double distanceThreshold,
64 float length_min,
float length_max,
69 double connectivityThreshold,
double distanceThreshold);
71 template<
int D,
class T>
bool
74 const std::vector<std::set<unsigned> > &polygonsByVertex_Index,
75 Point3df fiberPoint1, Point3df fiberPoint2,
unsigned meshClosestPoint,
76 QuickMap **polygonVerticesDistMap = 0);
78 template<
int D,
class T>
bool
81 const std::vector<std::set<unsigned> > &polygonsByVertex_Index,
82 Point3df fiberPoint1, Point3df fiberPoint2,
unsigned meshClosestPoint,
83 QuickMap **polygonVerticesDistMap = 0);
85 template<
int D,
class T>
bool
88 const std::vector<std::set<unsigned> > &polygonsByVertex_Index,
89 Point3df fiberPoint1, Point3df fiberPoint2,
unsigned meshClosestPoint,
90 std::vector<QuickMap> &distanceThresholdNeighborhoodByVertex,
91 QuickMap **polygonVerticesDistMap_2ptr);
96 std::string filename);
101 std::size_t seedRegionLabel, std::string connmatrix_filename,
102 std::string connTexture_filename);
107 std::size_t seedRegionLabel,
float distthresh,
float wthresh,
108 std::string connmatrix_filename, std::string connTexture_filename =
"",
109 bool logOption =
false);
std::vector< std::pair< std::size_t, double > > QuickMap
void fillconnMatrix(Connectivities *conn, QuickMap &fiberExtremity1NeighMeshVertex, QuickMap &fiberExtremity2NeighMeshVertex, double connectivityThreshold, double distanceThreshold, unsigned connectionLength=1)
void fillconnMatrixWithConnectionsPlusFloatLengthWeight(Connectivities *conn_ptr, const BundleConnections &connections, double connectivityThreshold, double distanceThreshold, float length_min, float length_max, ConnectionsFloatLength &connectionsLength)
std::vector< Connection > BundleConnections
void connMatrixSeedRegionSmoothed(const Fibers &fibers, const AimsSurfaceTriangle &inAimsMesh, Motion motion, const TimeTexture< short > &seedRegionsTex, std::size_t seedRegionLabel, float distthresh, float wthresh, std::string connmatrix_filename, std::string connTexture_filename="", bool logOption=false)
void fillconnMatrixWithConnections(Connectivities *conn_ptr, const BundleConnections &connections, std::vector< double > cortexConnectionsWeights, double connectivityThreshold, double distanceThreshold)
std::vector< Fiber > Fibers
bool computeIntersectionPointFiberSegmentAndMesh(const AimsTimeSurface< D, T > &aimsMesh, const std::vector< std::set< unsigned > > &polygonsByVertex_Index, Point3df fiberPoint1, Point3df fiberPoint2, unsigned meshClosestPoint, QuickMap **polygonVerticesDistMap=0)
bool computeIntersectionPointNeighborhoodFiberSegmentAndMesh(const AimsTimeSurface< D, T > &aimsMesh, const std::vector< std::set< unsigned > > &polygonsByVertex_Index, Point3df fiberPoint1, Point3df fiberPoint2, unsigned meshClosestPoint, std::vector< QuickMap > &distanceThresholdNeighborhoodByVertex, QuickMap **polygonVerticesDistMap_2ptr)
std::vector< float > ConnectionsFloatLength
void fillconnMatrixWithConnectionsPlusLength(Connectivities *conn_ptr, const BundleConnections &connections, double connectivityThreshold, double distanceThreshold, unsigned length_min, unsigned length_max, ConnectionsLength &connectionsLength)
void fillNonSymetricConnMatrix(Connectivities *conn_ptr, QuickMap &fiberExtremity1NeighMeshVertex_rows, QuickMap &fiberExtremity2NeighMeshVertex_cols, double connectivityThreshold, double distanceThreshold)
void fillNonSymetricConnMatrixWithConnections(Connectivities *conn_ptr, const BundleConnections &connections, double connectivityThreshold, double distanceThreshold)
void connMatrixTargetsToTargets(const Fibers &fibers, const AimsSurfaceTriangle &inAimsMesh, Motion motion, const TimeTexture< short > &targetRegionsTex, std::string filename)
void fillconnMatrixWithConnectionsPlusLengthWeight(Connectivities *conn_ptr, const BundleConnections &connections, double connectivityThreshold, double distanceThreshold, unsigned length_min, unsigned length_max, ConnectionsLength &connectionsLength)
void connMatrixSeedRegion(const Fibers &fibers, const AimsSurfaceTriangle &inAimsMesh, Motion motion, const TimeTexture< short > &seedRegionsTex, std::size_t seedRegionLabel, std::string connmatrix_filename, std::string connTexture_filename)
std::vector< unsigned > ConnectionsLength
std::vector< Connectivity > Connectivities
bool computeIntersectionPointFiberSegmentAndMesh2(const AimsTimeSurface< D, T > &aimsMesh, const std::vector< std::set< unsigned > > &polygonsByVertex_Index, Point3df fiberPoint1, Point3df fiberPoint2, unsigned meshClosestPoint, QuickMap **polygonVerticesDistMap=0)
void fillconnMatrixNoSmoothing(Connectivities *conn_ptr, QuickMap &fiberExtremity1NeighMeshVertex, QuickMap &fiberExtremity2NeighMeshVertex)
aims::AffineTransformation3d Motion
AIMSDATA_API AimsTimeSurface< 3, Void > AimsSurfaceTriangle