-
Notifications
You must be signed in to change notification settings - Fork 8
/
geodesic_matlab_api.h
50 lines (38 loc) · 1.71 KB
/
geodesic_matlab_api.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef GEODESIC_DLL_HEADER_HPP_234232
#define GEODESIC_DLL_HEADER_HPP_234232
#ifndef GEODESIC_DLL_IMPORT
#define GEODESIC_DLL_IMPORT
#endif
#ifdef __cplusplus
extern "C" {
#endif
GEODESIC_DLL_IMPORT long new_mesh(long num_points, //creates new mesh
double* points,
long num_triangles,
long* triangles,
long* num_edges,
double** edges);
GEODESIC_DLL_IMPORT long new_algorithm(long mesh_id, //creates a geodesic algorithm for a given mesh
long type,
long subdivision);
GEODESIC_DLL_IMPORT void delete_algorithm(long id);
GEODESIC_DLL_IMPORT void delete_mesh(long id); //delete mesh and all associated algorithms
GEODESIC_DLL_IMPORT void propagate(long algorithm_id, //compute distance field for given source points
double* source_points,
long num_sources,
double* stop_points, //limitations on distance field propagation
long num_stop_points,
double max_propagation_distance);
GEODESIC_DLL_IMPORT long trace_back(long algorithm_id, //using procomputed distance field, compute a shortest path from destination to the closest source
double* destination,
double** path);
GEODESIC_DLL_IMPORT long distance_and_source(long algorithm_id, //quickly find what source this point belongs to and what is the distance to this source
double* destination,
double* best_source_distance);
GEODESIC_DLL_IMPORT long distance_and_source_for_all_vertices(long algorithm_id, //same idea as in the previous function
double** distances, //list distance/source info for all vertices of the mesh
double** sources);
#ifdef __cplusplus
}
#endif
#endif