PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ _rti_iterator_arg_callback_init()

static int _rti_iterator_arg_callback_init ( _rti_iterator_arg  _param)
static

Definition at line 711 of file rt_mapalgebra.c.

711 {
712 uint32_t i = 0;
713
714 _param->arg = rtalloc(sizeof(struct rt_iterator_arg_t));
715 if (_param->arg == NULL) {
716 rterror("_rti_iterator_arg_callback_init: Could not allocate memory for rt_iterator_arg");
717 return 0;
718 }
719
720 _param->arg->values = NULL;
721 _param->arg->nodata = NULL;
722 _param->arg->src_pixel = NULL;
723
724 /* initialize argument components */
725 _param->arg->values = rtalloc(sizeof(double **) * _param->count);
726 _param->arg->nodata = rtalloc(sizeof(int **) * _param->count);
727 _param->arg->src_pixel = rtalloc(sizeof(int *) * _param->count);
728 if (_param->arg->values == NULL || _param->arg->nodata == NULL || _param->arg->src_pixel == NULL) {
729 rterror("_rti_iterator_arg_callback_init: Could not allocate memory for element of rt_iterator_arg");
730 return 0;
731 }
732 memset(_param->arg->values, 0, sizeof(double **) * _param->count);
733 memset(_param->arg->nodata, 0, sizeof(int **) * _param->count);
734
735 /* initialize pos */
736 for (i = 0; i < _param->count; i++) {
737
738 _param->arg->src_pixel[i] = rtalloc(sizeof(int) * 2);
739 if (_param->arg->src_pixel[i] == NULL) {
740 rterror("_rti_iterator_arg_callback_init: Could not allocate memory for position elements of rt_iterator_arg");
741 return 0;
742 }
743 memset(_param->arg->src_pixel[i], 0, sizeof(int) * 2);
744 }
745
746 _param->arg->rasters = _param->count;
747 _param->arg->rows = _param->dimension.rows;
748 _param->arg->columns = _param->dimension.columns;
749
750 _param->arg->dst_pixel[0] = 0;
751 _param->arg->dst_pixel[1] = 0;
752
753 return 1;
754}
void rterror(const char *fmt,...) __attribute__((format(printf
Wrappers used for reporting errors and info.
void * rtalloc(size_t size)
Wrappers used for managing memory.
Definition rt_context.c:191
struct _rti_iterator_arg_t::@18 dimension
rt_iterator_arg arg
double *** values
Definition librtcore.h:2675

References _rti_iterator_arg_t::arg, rt_iterator_arg_t::columns, _rti_iterator_arg_t::columns, _rti_iterator_arg_t::count, _rti_iterator_arg_t::dimension, rt_iterator_arg_t::dst_pixel, rt_iterator_arg_t::nodata, rt_iterator_arg_t::rasters, rt_iterator_arg_t::rows, _rti_iterator_arg_t::rows, rtalloc(), rterror(), rt_iterator_arg_t::src_pixel, and rt_iterator_arg_t::values.

Referenced by rt_raster_iterator().

Here is the call graph for this function:
Here is the caller graph for this function: