ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/g3flist.h
Revision: 2.1
Committed: Wed Aug 12 23:07:59 2015 UTC (8 years, 9 months ago) by greg
Content type: text/plain
Branch: MAIN
Log Message:
Added Jan Wienold's evalglare to distribution

File Contents

# User Rev Content
1 greg 2.1 #ifndef __G3FLIST_H
2     #define __G3FLIST_H
3    
4     #ifdef __cplusplus
5     extern "C" {
6     #endif
7    
8     #include <stdio.h>
9    
10     #include "g3vector.h"
11    
12    
13     #define G3FL_STARTCAP 50
14     #define G3FL_ID(fl,id) (fl->comp_size*id)
15     #define G3FL_GETID(fl,e) ((e-fl->list)/fl->comp_size)
16    
17     typedef struct g3FList {
18     int size;
19     int cap;
20     int comp_size;
21     int ipos;
22     g3Float* list;
23     } g3FList;
24    
25     #define g3fl_get_size(fl) (fl->size)
26     #define g3fl_get_comp_size(fl) (fl->comp_size)
27    
28     int g3fl_init(g3FList* fl,int cs);
29     g3FList* g3fl_create(int cs);
30     void g3fl_free(g3FList* fl);
31    
32     int g3fl_copy(g3FList* dst,g3FList* src);
33    
34     void g3fl_clear(g3FList* fl);
35    
36     int g3fl_read(g3FList* fl,FILE* fp);
37     g3Float* g3fl_append_new(g3FList* fl);
38     int g3fl_append(g3FList* fl,g3Float* el);
39     g3Float* g3fl_get(g3FList* fl,int id);
40     g3Float* g3fl_get_copy(g3FList* fl,int id);
41     int g3fl_remove(g3FList* fl,int id);
42     int g3fl_remove_last(g3FList* fl);
43    
44     g3Float* g3fl_begin(g3FList* fl);
45     g3Float* g3fl_next(g3FList* fl);
46     void g3fl_rewind(g3FList* fl);
47    
48     int g3fl_sort(g3FList* fl,int cnum);
49    
50    
51    
52    
53     #ifdef __cplusplus
54     }
55     #endif
56    
57     #endif