Up: GEOS SDK TechDocs| Up | Prev: ProtocolNumber ... | Next: ReleaseNumber ...

RangeSortFlags

typedef ByteFlags RangeSortFlags;
#define RSF_SORT_ROWS						0x80
#define RSF_SORT_ASCENDING						0x40
#define RSF_IGNORE_CASE						0x20

 

RangeSortParams

typedef struct {
Rectangle		RSP_range;
Point		RSP_active;
dword		RSP_callback;
byte		RSP_flags; /* RangeSortFlags */
dword		RSP_cfp;
word		RSP_sourceChunk;
word		RSP_destChunk;
word		RSP_base;
dword		RSP_lockedEntry;
byte		RSP_cachedFlags;
} RangeSortParams;

 

RecordHeader

typedef struct {
RecordID		RH_id;
word		RH_size;
byte		RH_fieldCount;
} RecordHeader;

Structure containing metadata about a record; first FieldHeader follows.

RecordID

typedef dword RecordID;

Uniquely identifies a record in a datastore; this value stays constant and does not change when other records are added or deleted.

RecordNum

typedef dword RecordNum;

Specifies relative place in the datastore; this value may change when other records are added or deleted.

Rectangle

typedef struct {
sword	R_left;
sword	R_top;
sword	R_right;
sword	R_bottom;
} Rectangle;

This structure represents a graphics rectangle.

RectDWord

typedef struct {
sdword	RD_left;
sdword	RD_top;
sdword	RD_right;
sdword	RD_bottom;
} RectDWord;

This structure represents a graphics rectangle.

RectRegion

typedef struct {
word 	RR_y1M1;
word 	RR_eo1;	/* EOREGREC */
word 	RR_y2;
word 	RR_x1;
word 	RR_x2;
word 	RR_eo2;		/* EOREGREC */
word 	RR_eo3;		/* EOREGREC */
} RectRegion;

 

RefElementHeader

typedef struct {
 WordAndAHalf REH_refCount;
} RefElementHeader;

 

Region

typedef word Region;
#define EOREGREC				0x8000
#define EOREG_HIGH				 0x80

This structure represents a region of a graphics coordinate space.

Regions are described in terms of a rectangular array (thus the similarity to bitmaps). Instead of specifying an on/off value for each pixel, however, regions assume that the region will be fairly undetailed and that the data structure can thus be treated in the manner of a sparse array. Only the cells in which the color value of a row changes are recorded. The tricky part here is keeping in mind that when figuring out whether or not a row is the same as a previous row, the system works its way up from the bottom, so that you should compare each row with the row beneath it to determine whether it needs an entry.

The easiest region to describe is the null region, which is a special case described by a single word with the value EOREGREC (a constant whose name stands for E nd Of REG ion REC ord value). Describing a non-null region requires several numbers.

The first four numbers of the region description give the bounds of the region. Next come one or more series of numbers. Each series describes a row, specifying which pixels of that row are part of the region. The only rows which need to be described are those which are different from the row below. The first number of each row description is the row number, its y coordinate. The last number of each series is a special token, EOREGREC, which lets the kernel know that the next number of the description will be the start of another row. Between the row number and EOREGREC are the column numbers where the pixels toggle on and off. The first number after the row number corresponds to the first column in which the pixel is on; the next number is the first subsequent column in which the pixel is off; and so on.

RegionFillRule

typedef ByteEnum RegionFillRule;
#define ODD_EVEN				0
#define WINDING				1

This enumerated type determines how a path or region should be filled. Winding fill is more versatile, but requires that the path or polygon's edges run in the correct direction.


Up: GEOS SDK TechDocs| Up | Prev: ProtocolNumber ... | Next: ReleaseNumber ...