TOC PREV NEXT INDEX

OMget_sub_barray, OMset_sub_barray

Synopsis


int OMget_sub_barray (object_id, ndim, size, min, max, bvalue);
int OMget_sub_sarray (object_id, ndim, size, min, max, svalue);
int OMget_sub_iarray (object_id, ndim, size, min, max, ivalue);
int OMget_sub_farray (object_id, ndim, size, min, max, fvalue);
int OMget_sub_rarray (object_id, ndim, size, min, max, rvalue);
int OMset_sub_barray (object_id, ndim, size, min, max, bvalue);
int OMset_sub_sarray (object_id, ndim, size, min, max, svalue);
int OMset_sub_iarray (object_id, ndim, size, min, max, ivalue);
int OMset_sub_farray (object_id, ndim, size, min, max, fvalue);
int OMset_sub_rarray (object_id, ndim, size, min, max, rvalue);
OMobj_id object_id;
int ndim, *size, *min, *max;
unsigned char *bvalue;
short *svalue;
int *ivalue;
float *fvalue;
double *rvalue;

Description

These routines get and set a subarray of an array object. With the ndim and size parameters, you specify the number of dimensions in the array and the size of each dimension. With the min and max parameters, you specify the range to retrieve or set in each dimension.The routines get different types of arrays.
This routines...
operates on...
OMget_sub_barray OMset_sub_barray
A byte array
OMget_sub_sarray OMset_sub_sarray
A short integer array
OMget_sub_iarray OMset_sub_iarray
An integer array
OMget_sub_farray OMset_sub_farray
A single-precision floating-point array
OMget_sub_rarray OMset_sub_rarray
A double-precision floating-point array

Arguments

object_id
The id of an array object.
ndim
The number of dimensions in the array object.
size
An array specifying the size of each dimension of the array object. The first value in this array is the fastest varying dimension in the array. This is the value that is the rightmost in the V specification for the dimensions.
min max
Arrays specifying, respectively, the minimum and maximum indices to retrieve/set in each dimension of the array. The first value in each of these arrays is the rightmost index in the V specification. AVS/Express uses zero-based indexing; i.e., the index of the first value in a dimension is 0. Note that the value specified by the maximum dimension is not included in the values retrieved or set in the array. This is not the same as the ":" range operator in the V language which does include the maximum value. For example, to get the first value in a dimension, you would set the min to 0 and the max to 1.
barray sarray iarray farray rarray
An output argument for get routines, an input argument for set routines containing the specified subarray. The number of values returned or set is the product of the range ( max - min ) in each dimension.

Returned value

The status code (see Return Status ).

Examples

In the V, array data is defined as follows:

group grp1 {
int h=400;
int w=300;
int ncomps=3;
byte data[h][w][ncomps] => read.data_out;
};

A program can access a subarray of data, as follows:

OMobj_id _grp1_id, data_id;
int h, w, ncomps;
unsigned char*subarray;
int ndim=3, size[3], min[3], max[3];
int status;
...
stat = OMget_name_int_val(grp1_id, OMstr_to_name("h"), &h);
stat += OMget_name_int_val(grp1_id, OMstr_to_name("w"), &w);
stat += OMget_name_int_val(grp1_id, OMstr_to_name("ncomps"),
&ncomps);
if (stat != 3) return(0);
size[0] = ncomps;
size[1] = w;
size[2] = h;
subarray = (unsigned char *) malloc (150 * 150 * ncomps);
min[0] = 0; /* Range for the ncomps dimension: 0-3. */
max[0] = ncomps;
min[1] = 0; /* Range for the w dimension: 0-150. */
max[1] = 150;
min[2] = 0; /* Range for the h dimension: 0-150. */
max[2] = 150;
data_id = OMfind_subobj(grp1_id, OMstr_to_name("data"),
OM_OBJ_RD);
status = OMget_sub_barray(data_id, 3, size, min, max,
subarray);
if (status == 0) {
return(0); /* value is not set */
}

See Also

none.

TOC PREV NEXT INDEX