Loading [MathJax]/extensions/tex2jax.js
Free Electron
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
geodesic_cpp_03_02_2008/geodesic_matlab_api.h
1 #ifndef GEODESIC_DLL_HEADER_HPP_234232
2 #define GEODESIC_DLL_HEADER_HPP_234232
3 
4 #ifndef GEODESIC_DLL_IMPORT
5 #define GEODESIC_DLL_IMPORT
6 #endif
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 GEODESIC_DLL_IMPORT long new_mesh(long num_points, //creates new mesh
13  double* points,
14  long num_triangles,
15  long* triangles,
16  long* num_edges,
17  double** edges);
18 
19 GEODESIC_DLL_IMPORT long new_algorithm(long mesh_id, //creates a geodesic algorithm for a given mesh
20  long type,
21  long subdivision);
22 
23 GEODESIC_DLL_IMPORT void delete_algorithm(long id);
24 
25 GEODESIC_DLL_IMPORT void delete_mesh(long id); //delete mesh and all associated algorithms
26 
27 GEODESIC_DLL_IMPORT void propagate(long algorithm_id, //compute distance field for given source points
28  double* source_points,
29  long num_sources,
30  double* stop_points, //limitations on distance field propagation
31  long num_stop_points,
32  double max_propagation_distance);
33 
34 GEODESIC_DLL_IMPORT long trace_back(long algorithm_id, //using procomputed distance field, compute a shortest path from destination to the closest source
35  double* destination,
36  double** path);
37 
38 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
39  double* destination,
40  double* best_source_distance);
41 
42 GEODESIC_DLL_IMPORT long distance_and_source_for_all_vertices(long algorithm_id, //same idea as in the previous function
43  double** distances, //list distance/source info for all vertices of the mesh
44  long** sources);
45 
46 #ifdef __cplusplus
47 }
48 #endif
49 
50 #endif