grasp_box.h
Go to the documentation of this file.
1 /*
2  * Copyright 2016 CNRS & Universite Lille 1. All rights reserved.
3  *
4  * Licensed under the GRASP Open Source License V1.0 (see LICENSE file)
5  */
6 
13 #ifndef GRASP_BOX_H_
14 #define GRASP_BOX_H_
15 
16 #include <stdlib.h> /* size_t */
17 #include <stdio.h> /* FILE * */
18 #include <stdbool.h>
19 #include <grasp/utils.h> /* filepath_t */
20 
21 typedef struct grasp_box_vector_t_ {
22  int x, y, z;
24 
25 typedef struct grasp_box_settings_t_ {
29 
30 typedef struct grasp_box_t_ grasp_box_t;
31 
32 #if defined (__cplusplus)
33 extern "C" {
34 #endif
35 
36 extern void grasp_box_set_debug_level(int level);
37 extern void grasp_box_rewind(grasp_box_t *box);
38 extern grasp_box_t *grasp_box_new(size_t record_size, const grasp_box_settings_t *settings);
39 extern void grasp_box_print(FILE *output_stream, const char *label, const grasp_box_t *box);
40 extern void grasp_box_delete(grasp_box_t *box);
41 extern bool grasp_box_attach_data_to_pixel(grasp_box_t *box, const grasp_box_vector_t *pixel, const size_t data_size, const void *data);
42 extern bool grasp_box_get_data_from_pixel(const grasp_box_t *box, const grasp_box_vector_t *pixel, void *data_copy);
43 extern bool grasp_box_set_data_on_pixel(grasp_box_t *box, const grasp_box_vector_t *pixel, const void *data_copy);
44 extern size_t grasp_box_get_num_records(const grasp_box_t* box);
45 extern bool grasp_box_get_next_pixel(grasp_box_t *box, void *data_copy);
46 extern void grasp_box_get_settings(const grasp_box_t *box, grasp_box_settings_t *settings_copy);
47 
48 extern void grasp_box_add_parent_file(grasp_box_t *box, const char *parent_file);
49 extern size_t grasp_box_get_num_parent_files(const grasp_box_t *box);
50 extern void grasp_box_get_parent_files(const grasp_box_t *box, size_t num_parent_files, filepath_t *parent_files /* must be allocated by the caller */);
51 
52 #if defined (__cplusplus)
53 }
54 #endif
55 
56 #endif /* GRASP_BOX_H_ */
bool grasp_box_get_next_pixel(grasp_box_t *box, void *data_copy)
Definition: grasp_box.c:242
struct grasp_box_vector_t_ grasp_box_vector_t
size_t grasp_box_get_num_records(const grasp_box_t *box)
Definition: grasp_box.c:258
grasp_box_vector_t extent
Definition: grasp_box.h:27
int y
Definition: grasp_box.h:22
filepath_t * parent_files
Definition: grasp_box.c:36
bool grasp_box_attach_data_to_pixel(grasp_box_t *box, const grasp_box_vector_t *pixel, const size_t data_size, const void *data)
Definition: grasp_box.c:152
void grasp_box_delete(grasp_box_t *box)
Definition: grasp_box.c:138
bool grasp_box_set_data_on_pixel(grasp_box_t *box, const grasp_box_vector_t *pixel, const void *data_copy)
Definition: grasp_box.c:226
void grasp_box_print(FILE *output_stream, const char *label, const grasp_box_t *box)
Definition: grasp_box.c:121
size_t num_parent_files
Definition: grasp_box.c:34
size_t grasp_box_get_num_parent_files(const grasp_box_t *box)
Definition: grasp_box.c:45
Definition: grasp_box.h:21
bool grasp_box_get_data_from_pixel(const grasp_box_t *box, const grasp_box_vector_t *pixel, void *data_copy)
Definition: grasp_box.c:211
void grasp_box_set_debug_level(int level)
Definition: grasp_box.c:41
struct grasp_box_settings_t_ grasp_box_settings_t
void grasp_box_get_parent_files(const grasp_box_t *box, size_t num_parent_files, filepath_t *parent_files)
Definition: grasp_box.c:50
void grasp_box_add_parent_file(grasp_box_t *box, const char *parent_file)
Definition: grasp_box.c:60
int z
Definition: grasp_box.h:22
grasp_box_t * grasp_box_new(size_t record_size, const grasp_box_settings_t *settings)
Definition: grasp_box.c:87
Definition: grasp_box.h:25
grasp_box_vector_t orig
Definition: grasp_box.h:26
Definition: grasp_box.c:29
void grasp_box_rewind(grasp_box_t *box)
Definition: grasp_box.c:81
void grasp_box_get_settings(const grasp_box_t *box, grasp_box_settings_t *settings_copy)
Definition: grasp_box.c:263
int x
Definition: grasp_box.h:22