aimsalgo  5.1.2
Neuroimaging image processing
geodesicPath.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2000-2004 CEA
3  *
4  * This software and supporting documentation were developed by
5  * CEA/DSV/SHFJ
6  * 4 place du General Leclerc
7  * 91401 Orsay cedex
8  * France
9  */
10 
11 
12 
13 #ifndef AIMS_GEODESIC_PATH_H
14 #define AIMS_GEODESIC_PATH_H
15 
16 #include <aims/mesh/surface.h>
17 #include <aims/mesh/texture.h>
18 #include <aims/mesh/surfacegen.h>
20 #include <aims/io/reader.h>
21 #include <aims/io/writer.h>
25 
26 namespace aims
27 {
28 
42  {
43  public:
44  typedef std::vector<unsigned> vect_ui;
45  int _strain;
46  int _method;
50 
67  const TimeTexture<float> & texCurv, int method, int strain);
71  GeodesicPath( const AimsSurfaceTriangle & surface , int method,
72  int strain);
74 
75  // method: 1=sulci 2=gyri 3=geodesic
76 
77  //private :
78  //private methods
81  const TimeTexture<float> & texCurv, int method,
82  int strain);
84  void updateWeight( const TimeTexture<float> & texCurv, int method,
85  int strain, double sigmo);
86 
87  public :
88  std::vector<unsigned> shortestPath_1_1_ind(unsigned source, unsigned target);
89  std::vector<unsigned> shortestPath_1_1_ind(unsigned source, unsigned target, TimeTexture<short> subset);
90  std::vector<unsigned> shortestPath_1_1_1_ind(unsigned source, unsigned middle, unsigned target);
91  void shortestPath_1_N_ind(unsigned source, std::vector<unsigned> targets, unsigned *target, double *length);
92  std::vector<Point3df> shortestPath_1_1_xyz(unsigned source, unsigned target);
93  void shortestPath_1_1_ind_xyz(unsigned source, unsigned target, std::vector<unsigned>& indice, std::vector<Point3df>& coord3D);
94  void shortestPath_1_1_tex(unsigned source, unsigned target, float texturevalue, TimeTexture<float> &tex);
95  double shortestPath_1_1_len(unsigned source, unsigned target);
96  void shortestPath_1_N_All_ind(unsigned sources, std::vector<unsigned> targets, std::vector<std::vector<unsigned> >&indices);
97 
98  void longestPath_1_N_ind(unsigned source, std::vector<unsigned> targets, unsigned *target, double *length, int type_distance);
99  std::vector<vect_ui> longestPath_1_N_len(unsigned source, std::vector<unsigned> targets, std::vector<double> &length, int type_distance);
100 
101 
102  std::vector<unsigned> longestPath_N_N_ind(std::vector<unsigned> points, int* s, int *d, double *length, int type_distance);
112  void distanceMap_1_N_ind(unsigned source,
113  std::vector<float> &distanceMap,double *length,
114  int type_distance);
115  };
116 
117 }
118 
119 #endif
Geodesic paths or distance maps, using the Dijkstra algorithm.
Definition: geodesicPath.h:42
void computeGraphDijkstra(const AimsSurfaceTriangle &surface, const TimeTexture< float > &texCurv, int method, int strain)
initialize internal stuctures, should be private.
std::vector< unsigned > shortestPath_1_1_1_ind(unsigned source, unsigned middle, unsigned target)
std::vector< unsigned > shortestPath_1_1_ind(unsigned source, unsigned target, TimeTexture< short > subset)
TimeTexture< float > _texCurv
Definition: geodesicPath.h:48
std::vector< unsigned > vect_ui
Definition: geodesicPath.h:44
void distanceMap_1_N_ind(unsigned source, std::vector< float > &distanceMap, double *length, int type_distance)
Compute a distance map from a given point.
GeodesicPath(const AimsSurfaceTriangle &surface, int method, int strain)
Same as the above constructor, except that the constraints map is computed internally as the curvatur...
void shortestPath_1_N_All_ind(unsigned sources, std::vector< unsigned > targets, std::vector< std::vector< unsigned > > &indices)
AimsSurfaceTriangle _surface
Definition: geodesicPath.h:47
void shortestPath_1_1_ind_xyz(unsigned source, unsigned target, std::vector< unsigned > &indice, std::vector< Point3df > &coord3D)
std::vector< vect_ui > longestPath_1_N_len(unsigned source, std::vector< unsigned > targets, std::vector< double > &length, int type_distance)
void shortestPath_1_1_tex(unsigned source, unsigned target, float texturevalue, TimeTexture< float > &tex)
void longestPath_1_N_ind(unsigned source, std::vector< unsigned > targets, unsigned *target, double *length, int type_distance)
geodesic::Mesh _meshSP
Definition: geodesicPath.h:49
std::vector< Point3df > shortestPath_1_1_xyz(unsigned source, unsigned target)
std::vector< unsigned > longestPath_N_N_ind(std::vector< unsigned > points, int *s, int *d, double *length, int type_distance)
void shortestPath_1_N_ind(unsigned source, std::vector< unsigned > targets, unsigned *target, double *length)
void updateWeight(const TimeTexture< float > &texCurv, int method, int strain, double sigmo)
update internal structures, should be private.
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...
std::vector< unsigned > shortestPath_1_1_ind(unsigned source, unsigned target)
double shortestPath_1_1_len(unsigned source, unsigned target)
AIMSDATA_API AimsTimeSurface< 3, Void > AimsSurfaceTriangle