|
GRASS Programmer's Manual
6.5.svn(2014)-r66266
|
OGSF library - dataset loading and management (lower level functions) More...
#include <stdlib.h>#include <string.h>#include <grass/gis.h>#include <grass/glocale.h>#include <grass/gstypes.h>
Go to the source code of this file.
Macros | |
| #define | LUCKY 33 |
| #define | BLOC 20 |
| #define | MAX_DS 100 |
Functions | |
| int | gsds_findh (const char *name, IFLAG *changes, IFLAG *types, int begin) |
| Get handle to gsds. More... | |
| int | gsds_newh (const char *name) |
| Get handle to gsds. More... | |
| typbuff * | gsds_get_typbuff (int id, IFLAG change_flag) |
| Get data buffer. More... | |
| char * | gsds_get_name (int id) |
| Get name. More... | |
| int | gsds_free_datah (int id) |
| Free allocated dataset. More... | |
| int | gsds_free_data_buff (int id, int typ) |
| Free allocated buffer. More... | |
| int | free_data_buffs (dataset *ds, int typ) |
| Free data buffer. More... | |
| int | gsds_alloc_typbuff (int id, int *dims, int ndims, int type) |
| Allocates correct buffer according to type, keeps track of total mem. More... | |
| int | gsds_get_changed (int id) |
| ADD. More... | |
| int | gsds_set_changed (int id, IFLAG reason) |
| ADD. More... | |
| int | gsds_get_type (int id) |
| ADD. More... | |
OGSF library - dataset loading and management (lower level functions)
GRASS OpenGL gsurf OGSF Library
The idea here is to treat datasets as seperate objects, which SHOULD:
These structures are defined in gstypes.h:
typedef struct{ float *fb; int *ib; short *sb; char *cb; struct BM *bm; } typbuff;
How about adding a transform func here, so GET_MAPATT would do an on-the-fly transformation? Or even a transform func LIST!
typedef struct{ int data_id; int dims[MAXDIMS]; int ndims; int numbytes; char unique_name[80]; typbuff databuff; int changed; int need_reload; } dataset;
(C) 1999-2008 by the GRASS Development Team
This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.
Definition in file gsds.c.
Free data buffer.
| ds | pointer to dataset struct |
| typ | data type |
Definition at line 393 of file gsds.c.
References BM_destroy(), BM_get_map_size(), free(), G_debug(), int, and NULL.
Referenced by gsds_free_data_buff(), and gsds_free_datah().
Allocates correct buffer according to type, keeps track of total mem.
| id | dataset id |
| dims | array of dimensions |
| ndims | number of dimensions |
| type | data type |
Definition at line 481 of file gsds.c.
References BM_create(), BM_get_map_size(), G_debug(), int, and NULL.
Referenced by gs_malloc_att_buff().
Get handle to gsds.
Successive calls will continue search until "begin" is set (problem here is, unique_name no longer uniquely identifies dataset, since changes may be made; but unique_name should still be useful for reloading dataset) changes & types are set to actual for dataset if found.
| name | |
| changes,types | acceptable changes & types, flags may be or'd not changed is assumed to always be acceptable |
| begin | flag to indicate search from beginning |
Definition at line 188 of file gsds.c.
Referenced by GS_load_att_map().
Free allocated buffer.
| id | dataset id |
| typ | data type |
Definition at line 369 of file gsds.c.
References free_data_buffs().
Referenced by GS_load_att_map().
Free allocated dataset.
| id |
Definition at line 329 of file gsds.c.
References free_data_buffs(), G_debug(), G_free(), and NULL.
Referenced by gs_free_unshared_buffs(), and gs_set_att_src().
ADD.
| id |
Definition at line 614 of file gsds.c.
Referenced by Gs_update_attrange().
| char* gsds_get_name | ( | int | id | ) |
Get name.
| id |
Definition at line 303 of file gsds.c.
References NULL.
Referenced by GS_get_att(), and GS_get_cat_at_xy().
| typbuff* gsds_get_typbuff | ( | int | id, |
| IFLAG | change_flag | ||
| ) |
Get data buffer.
Doesn't prevent writing a buff thats's been gotten with change_flag == 0 (could return a copy, but willing to trust calling func for now)
| id | dataset id |
| change_flag | set changed flag |
Definition at line 281 of file gsds.c.
References NULL.
Referenced by gs_get_att_typbuff(), and Gs_update_attrange().
| int gsds_newh | ( | const char * | name | ) |
ADD.
| id | |
| reason |
Definition at line 634 of file gsds.c.
Referenced by GS_load_att_map().