aimsalgo  5.1.2
Neuroimaging image processing
aims::GeodesicPath Class Reference

Geodesic paths or distance maps, using the Dijkstra algorithm. More...

#include <aims/geodesicpath/geodesicPath.h>

Collaboration diagram for aims::GeodesicPath:

Public Types

typedef std::vector< unsigned > vect_ui
 

Public Member Functions

 GeodesicPath (const AimsSurfaceTriangle &surface, const TimeTexture< float > &texCurv, int method, int strain)
 Initializes the geodesic path structures for a given mesh geometry, using a constraint map (curvature, typically). More...
 
 GeodesicPath (const AimsSurfaceTriangle &surface, int method, int strain)
 Same as the above constructor, except that the constraints map is computed internally as the curvature of the mesh. More...
 
 ~GeodesicPath ()
 
void computeGraphDijkstra (const AimsSurfaceTriangle &surface, const TimeTexture< float > &texCurv, int method, int strain)
 initialize internal stuctures, should be private. More...
 
void updateWeight (const TimeTexture< float > &texCurv, int method, int strain, double sigmo)
 update internal structures, should be private. More...
 
std::vector< unsigned > shortestPath_1_1_ind (unsigned source, unsigned target)
 
std::vector< unsigned > shortestPath_1_1_ind (unsigned source, unsigned target, TimeTexture< short > subset)
 
std::vector< unsigned > shortestPath_1_1_1_ind (unsigned source, unsigned middle, unsigned target)
 
void shortestPath_1_N_ind (unsigned source, std::vector< unsigned > targets, unsigned *target, double *length)
 
std::vector< Point3dfshortestPath_1_1_xyz (unsigned source, unsigned target)
 
void shortestPath_1_1_ind_xyz (unsigned source, unsigned target, std::vector< unsigned > &indice, std::vector< Point3df > &coord3D)
 
void shortestPath_1_1_tex (unsigned source, unsigned target, float texturevalue, TimeTexture< float > &tex)
 
double shortestPath_1_1_len (unsigned source, unsigned target)
 
void shortestPath_1_N_All_ind (unsigned sources, std::vector< unsigned > targets, std::vector< std::vector< unsigned > > &indices)
 
void longestPath_1_N_ind (unsigned source, std::vector< unsigned > targets, unsigned *target, double *length, int type_distance)
 
std::vector< vect_uilongestPath_1_N_len (unsigned source, std::vector< unsigned > targets, std::vector< double > &length, int type_distance)
 
std::vector< unsigned > longestPath_N_N_ind (std::vector< unsigned > points, int *s, int *d, double *length, int type_distance)
 
void distanceMap_1_N_ind (unsigned source, std::vector< float > &distanceMap, double *length, int type_distance)
 Compute a distance map from a given point. More...
 

Public Attributes

int _strain
 
int _method
 
AimsSurfaceTriangle _surface
 
TimeTexture< float > _texCurv
 
geodesic::Mesh _meshSP
 

Detailed Description

Geodesic paths or distance maps, using the Dijkstra algorithm.

ex:

GeodesicPath gp( mesh, 0, 0 );
double dmax = 0;
// get a distance map from vertex no 12
gp.distanceMap_1_N_ind( 12, dmap[0].data(), &dmax, 0 );
GeodesicPath(const AimsSurfaceTriangle &surface, const TimeTexture< float > &texCurv, int method, int strain)
Initializes the geodesic path structures for a given mesh geometry, using a constraint map (curvature...

Definition at line 41 of file geodesicPath.h.

Member Typedef Documentation

◆ vect_ui

typedef std::vector<unsigned> aims::GeodesicPath::vect_ui

Definition at line 44 of file geodesicPath.h.

Constructor & Destructor Documentation

◆ GeodesicPath() [1/2]

aims::GeodesicPath::GeodesicPath ( const AimsSurfaceTriangle surface,
const TimeTexture< float > &  texCurv,
int  method,
int  strain 
)

Initializes the geodesic path structures for a given mesh geometry, using a constraint map (curvature, typically).

Several methods are available.

Parameters
surfacemesh to compute geodesic paths or distances on
texCurvconstraint map texture
method0: unconstrained, 1: minimize the constraint map, suitable for sulci using the curvature as constraint, 2: maximize constraint map, suitable for gyri using the curvature as constraint, 3: unconstrained
strainweight factor on the constraints map. In practice we use 3 for sulci and gyri.

◆ GeodesicPath() [2/2]

aims::GeodesicPath::GeodesicPath ( const AimsSurfaceTriangle surface,
int  method,
int  strain 
)

Same as the above constructor, except that the constraints map is computed internally as the curvature of the mesh.

◆ ~GeodesicPath()

aims::GeodesicPath::~GeodesicPath ( )

Member Function Documentation

◆ computeGraphDijkstra()

void aims::GeodesicPath::computeGraphDijkstra ( const AimsSurfaceTriangle surface,
const TimeTexture< float > &  texCurv,
int  method,
int  strain 
)

initialize internal stuctures, should be private.

◆ distanceMap_1_N_ind()

void aims::GeodesicPath::distanceMap_1_N_ind ( unsigned  source,
std::vector< float > &  distanceMap,
double *  length,
int  type_distance 
)

Compute a distance map from a given point.

Parameters
sourceindex of the starting point (vertex number)
distanceMapoutput distance map, the vector can be empty, it will be filled with as many values as the mesh vertices number.
lengthoutput max distance
type_distance0: weighted distance, 1: euclidean distance

◆ longestPath_1_N_ind()

void aims::GeodesicPath::longestPath_1_N_ind ( unsigned  source,
std::vector< unsigned >  targets,
unsigned *  target,
double *  length,
int  type_distance 
)

◆ longestPath_1_N_len()

std::vector<vect_ui> aims::GeodesicPath::longestPath_1_N_len ( unsigned  source,
std::vector< unsigned >  targets,
std::vector< double > &  length,
int  type_distance 
)

◆ longestPath_N_N_ind()

std::vector<unsigned> aims::GeodesicPath::longestPath_N_N_ind ( std::vector< unsigned >  points,
int *  s,
int *  d,
double *  length,
int  type_distance 
)

◆ shortestPath_1_1_1_ind()

std::vector<unsigned> aims::GeodesicPath::shortestPath_1_1_1_ind ( unsigned  source,
unsigned  middle,
unsigned  target 
)

◆ shortestPath_1_1_ind() [1/2]

std::vector<unsigned> aims::GeodesicPath::shortestPath_1_1_ind ( unsigned  source,
unsigned  target 
)

◆ shortestPath_1_1_ind() [2/2]

std::vector<unsigned> aims::GeodesicPath::shortestPath_1_1_ind ( unsigned  source,
unsigned  target,
TimeTexture< short >  subset 
)

◆ shortestPath_1_1_ind_xyz()

void aims::GeodesicPath::shortestPath_1_1_ind_xyz ( unsigned  source,
unsigned  target,
std::vector< unsigned > &  indice,
std::vector< Point3df > &  coord3D 
)

◆ shortestPath_1_1_len()

double aims::GeodesicPath::shortestPath_1_1_len ( unsigned  source,
unsigned  target 
)

◆ shortestPath_1_1_tex()

void aims::GeodesicPath::shortestPath_1_1_tex ( unsigned  source,
unsigned  target,
float  texturevalue,
TimeTexture< float > &  tex 
)

◆ shortestPath_1_1_xyz()

std::vector<Point3df> aims::GeodesicPath::shortestPath_1_1_xyz ( unsigned  source,
unsigned  target 
)

◆ shortestPath_1_N_All_ind()

void aims::GeodesicPath::shortestPath_1_N_All_ind ( unsigned  sources,
std::vector< unsigned >  targets,
std::vector< std::vector< unsigned > > &  indices 
)

◆ shortestPath_1_N_ind()

void aims::GeodesicPath::shortestPath_1_N_ind ( unsigned  source,
std::vector< unsigned >  targets,
unsigned *  target,
double *  length 
)

◆ updateWeight()

void aims::GeodesicPath::updateWeight ( const TimeTexture< float > &  texCurv,
int  method,
int  strain,
double  sigmo 
)

update internal structures, should be private.

Member Data Documentation

◆ _meshSP

geodesic::Mesh aims::GeodesicPath::_meshSP

Definition at line 49 of file geodesicPath.h.

◆ _method

int aims::GeodesicPath::_method

Definition at line 46 of file geodesicPath.h.

◆ _strain

int aims::GeodesicPath::_strain

Definition at line 45 of file geodesicPath.h.

◆ _surface

AimsSurfaceTriangle aims::GeodesicPath::_surface

Definition at line 47 of file geodesicPath.h.

◆ _texCurv

TimeTexture<float> aims::GeodesicPath::_texCurv

Definition at line 48 of file geodesicPath.h.


The documentation for this class was generated from the following file: