aimsalgo 6.0.0
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
26namespace aims
27{
28
42 {
43 public:
44 typedef std::vector<unsigned> vect_ui;
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
void computeGraphDijkstra(const AimsSurfaceTriangle &surface, const TimeTexture< float > &texCurv, int method, int strain)
initialize internal stuctures, should be private.
std::vector< Point3df > shortestPath_1_1_xyz(unsigned source, unsigned target)
TimeTexture< float > _texCurv
std::vector< unsigned > vect_ui
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
std::vector< unsigned > shortestPath_1_1_1_ind(unsigned source, unsigned middle, unsigned target)
void shortestPath_1_1_ind_xyz(unsigned source, unsigned target, std::vector< unsigned > &indice, std::vector< Point3df > &coord3D)
std::vector< unsigned > shortestPath_1_1_ind(unsigned source, unsigned target)
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)
std::vector< unsigned > shortestPath_1_1_ind(unsigned source, unsigned target, TimeTexture< short > subset)
geodesic::Mesh _meshSP
std::vector< unsigned > longestPath_N_N_ind(std::vector< unsigned > points, int *s, int *d, double *length, int type_distance)
std::vector< vect_ui > longestPath_1_N_len(unsigned source, std::vector< unsigned > targets, std::vector< 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...
double shortestPath_1_1_len(unsigned source, unsigned target)
AIMSDATA_API AimsTimeSurface< 3, Void > AimsSurfaceTriangle