rangemap.h
00001 /*
00002  * 3D Shape Analysis Library.
00003  * Copyright (C) 2008 AQSENSE, S.L.
00004  */
00005 #if !defined (AQSENSE_SAL3D_RANGE_MAP_H)
00006 #define AQSENSE_SAL3D_RANGE_MAP_H
00007 
00008 #if defined (_MSC_VER) && (_MSC_VER >= 1020)
00009 #pragma once
00010 #endif /* _MSC_VER && _MSC_VER >= 1020 */
00011 
00012 #include "sal3d_def.h"
00013 #include "frame.h"
00014 
00015 /*
00016  * Type definition.
00017  * --------------------------------
00018  */
00019 
00020 /* A range map. */
00021 typedef struct sal3d_range_map
00022 {
00023     void *p;
00024 } sal3d_range_map;
00025 
00026 /* As these needs the range_map type defined, we include the files
00027  * only after defining the range_map type. */
00028 #include "profile.h"
00029 #include "metricconfig.h"
00030 
00031 /*
00032  * Functions.
00033  * --------------------------------
00034  */
00035 
00044 SAL3D_API(int) sal3d_range_map_count_profiles (
00045         const sal3d_range_map rangemap, sal3d_error *e DEFZERO);
00046 
00047 SAL3D_API(int) sal3d_range_map_max_profiles (
00048         const sal3d_range_map rangemap, sal3d_error *e DEFZERO);
00049 
00060 SAL3D_API(int) sal3d_range_map_get_profile (const sal3d_range_map rangemap,
00061         int index, sal3d_profile *profile, sal3d_error *e DEFZERO);
00062 
00071 SAL3D_API(int) sal3d_range_map_get_new_profile (const sal3d_range_map rangemap,
00072         sal3d_profile *profile, sal3d_error *e DEFZERO);
00073 
00083 SAL3D_API(int) sal3d_range_map_get_profiles_length (
00084         const sal3d_range_map rangemap, sal3d_error *e DEFZERO);
00085 
00095 SAL3D_API(int) sal3d_range_map_get_frame (sal3d_range_map rangemap,
00096         sal3d_frame *frame, sal3d_error *e DEFZERO);
00097 
00106 SAL3D_API(int) sal3d_range_map_check_validity (const sal3d_range_map rangemap,
00107         sal3d_error *e DEFZERO);
00108 
00119 SAL3D_API(int) sal3d_range_map_new (int plength, int max_profiles, sal3d_range_map *rangemap, sal3d_error *e DEFZERO);
00120 
00131 SAL3D_API(int) sal3d_range_map_new_from_file (const char *fileName,
00132         sal3d_range_map *rangemap, sal3d_metric_config *mconfig, sal3d_error *e
00133         DEFZERO);
00134 
00146 SAL3D_API(int) sal3d_range_map_new_from_frame (sal3d_frame frame,
00147         int plane, sal3d_range_map *rangemap, sal3d_error *e DEFZERO);
00148 
00156 SAL3D_API(int) sal3d_range_map_refcount (sal3d_range_map rangemap, sal3d_error
00157         *e DEFZERO);
00158 
00171 SAL3D_API(int) sal3d_range_map_release (sal3d_range_map rangemap,
00172         sal3d_error *e DEFZERO);
00173 
00183 SAL3D_API(int) sal3d_range_map_save_to_file (const sal3d_range_map rangemap,
00184         const char *filename, sal3d_error *e DEFZERO);
00185 
00193 SAL3D_API(int) sal3d_range_map_share (sal3d_range_map rangemap, sal3d_error *e
00194         DEFZERO);
00195 
00204 SAL3D_API(int) sal3d_range_map_duplicate (const sal3d_range_map base,
00205         sal3d_range_map *rangemap, sal3d_error *e DEFZERO);
00206 
00207 #endif /* !AQSENSE_SAL3D_RANGE_MAP_H */