.TH MACROS 3 "11 April 1990"
.SH NAME
IM_REGION_ADDR, 
IM_REGION_LSKIP,
IM_REGION_N_ELEMENTS, IM_REGION_SIZEOF_LINE \- 
macros for regions 
.SH SYNOPSIS
.B #include <vips/vips.h>

int IM_REGION_LSKIP( reg ) 
.br
REGION *reg;

int IM_REGION_N_ELEMENTS( reg ) 
.br
REGION *reg;

int IM_REGION_SIZEOF_LINE( reg ) 
.br
REGION *reg;

char *IM_REGION_ADDR( reg, x, y ) 
.br
REGION *reg;
.br
int x, y;

.SH DESCRIPTION
These macros help to simplify address arithmetic for regions. 

IM_REGION_LSKIP(3) returns the number of *bytes* you should add to move
down a scan line.  Remember that if your pointer has been cast to the type
of the image pels, this will not be the correct amount to add! The value
lskip returns can be changed by a call to im_prepare(3).

IM_REGION_N_ELEMENTS(3) returns the number of band elements across the region.

IM_REGION_SIZEOF_LINE(3) returns sizeof( horizontal line across region ).

IM_REGION_ADDR(3) returns a pointer to the pixel at position (x,y) in the
image on which reg has been defined. The point (x,y) should lie within the
valid area for this region.

If the macro DEBUG has been defined, then IM_REGION_ADDR(3) will also
perform bounds checking. If you ask for the address of a pel outside the rect
reg->valid, then IM_REGION_ADDR(3) will print an error message of the form:

    IM_REGION_ADDR: point out of bounds, file "test.c", line 18
    (point x=50, y=0 
     should have been within Rect left=0, top=0, width=50, height=50)

and call abort(3).

DEBUG needs to be defined *before* region.h is included. Either define DEBUG
with -D in your Makefile, or have a #define DEBUG right at the top of your
file.

.SH COPYRIGHT
National Gallery, 1993
.SH SEE ALSO
IM_IMAGE_ADDR(3), im_malloc(3), im_open_local(3). 
.SH AUTHOR
J. Cupitt \- 23/7/93
