rect

rect — the VIPS rectangle class

Stability Level

Stable, unless otherwise indicated

Types and Values

Includes

#include <vips/vips.h>

Description

The VipsRect class and associated types and macros.

Functions

VIPS_RECT_RIGHT()

#define VIPS_RECT_RIGHT(R) ((R)->left + (R)->width)

VIPS_RECT_BOTTOM()

#define VIPS_RECT_BOTTOM(R) ((R)->top + (R)->height)

VIPS_RECT_HCENTRE()

#define VIPS_RECT_HCENTRE(R) ((R)->left + (R)->width / 2)

VIPS_RECT_VCENTRE()

#define VIPS_RECT_VCENTRE(R) ((R)->top + (R)->height / 2)

vips_rect_isempty ()

gboolean
vips_rect_isempty (const VipsRect *r);

Is r empty? ie. zero width or height.

[method]

Parameters

r

rectangle to test

 

Returns

TRUE if r contains no pixels.


vips_rect_includespoint ()

gboolean
vips_rect_includespoint (const VipsRect *r,
                         int x,
                         int y);

Does r contain point (x , y )?

Parameters

r

rectangle to test

 

x

position to test for

 

y

position to test for

 

Returns

TRUE if r contains (x , y ).


vips_rect_includesrect ()

gboolean
vips_rect_includesrect (const VipsRect *r1,
                        const VipsRect *r2);

Is r2 a subset of r1 ?

[method]

Parameters

r1

outer rectangle

 

r2

inner rectangle

 

Returns

TRUE if r2 is a subset of r1 .


vips_rect_equalsrect ()

gboolean
vips_rect_equalsrect (const VipsRect *r1,
                      const VipsRect *r2);

Is r1 equal to r2 ?

[method]

Parameters

r1

first rectangle

 

r2

second rectangle

 

Returns

TRUE if r1 is equal to r2 .


vips_rect_overlapsrect ()

gboolean
vips_rect_overlapsrect (const VipsRect *r1,
                        const VipsRect *r2);

Do r1 and r2 have a non-empty intersection?

[method]

Parameters

r1

first rectangle

 

r2

second rectangle

 

Returns

TRUE if r2 and r1 overlap.


vips_rect_marginadjust ()

void
vips_rect_marginadjust (VipsRect *r,
                        int n);

Enlarge r by n . +1 means out one pixel.

[method]

Parameters

r

rectangle to adjust

 

n

enlarge by

 

vips_rect_intersectrect ()

void
vips_rect_intersectrect (const VipsRect *r1,
                         const VipsRect *r2,
                         VipsRect *out);

Fill out with the intersection of r1 and r2 . out can equal r1 or r2 .

Parameters

r1

input rectangle 1

 

r2

input rectangle 2

 

out

output rectangle.

[out]

vips_rect_unionrect ()

void
vips_rect_unionrect (const VipsRect *r1,
                     const VipsRect *r2,
                     VipsRect *out);

Fill out with the bounding box of r1 and r2 . out can equal r1 or r2 .

Parameters

r1

input rectangle 1

 

r2

input rectangle 2

 

out

output rectangle.

[out]

vips_rect_dup ()

VipsRect *
vips_rect_dup (const VipsRect *r);

Duplicate a rect to the heap. You need to free the result with vips_free().

[skip]

Parameters

r

rectangle to duplicate

 

Returns

a pointer to copy of r allocated on the heap.

[transfer full]


vips_rect_normalise ()

void
vips_rect_normalise (VipsRect *r);

Make sure width and height are >0 by moving the origin and flipping the rect.

[method]

Parameters

r

rect to normalise

 

Types and Values

VipsRect

typedef struct {
	int left;
	int top;
	int width;
	int height;
} VipsRect;

A VipsRect is a rectangular area of pixels. This is a struct for performing simple rectangle algebra.

Members

int left;

left edge of rectangle

 

int top;

top edge of rectangle

 

int width;

width of rectangle

 

int height;

height of rectangle

 

See Also

region