/*
 *	cliprgnm.h
 *
 *	領域マップ
 *
 *	CLiP - Common Library for P/ECE
 *	Copyright (C) 2001-2017 Naoyuki Sawa
 *
 *	* Mon Apr 24 21:59:40 JST 2017 Naoyuki Sawa
 *	- 1st リリース。
 */
#ifndef __CLIP_RGNM_H__
#define __CLIP_RGNM_H__
#ifdef  __cplusplus
extern "C" {
#endif//__cplusplus
/****************************************************************************
 *	定数、構造体
 ****************************************************************************/
//RgnFigに属する値の名前
#define RgnFig_type		1	//RgnFigの種類		RgnFigType_*
#define RgnFig_x		2	//┬RgnFigの左上の座標	符号付き24bit	┐
#define RgnFig_y		3	//┘					│RgnFigの種類によって、使用するフィールドや解釈を変えて構いません。
#define RgnFig_w		4	//┬RgnFigの幅と高さ	符号無し24bit	│現在の所はrectとovalしか無いので同じですが、今後は上記の通りです。
#define RgnFig_h		5	//┘					┘
//RgnFig_typeの値
#define RgnFigType_rect		1	//矩形{x,y,w,h}
#define RgnFigType_oval		2	//楕円{x,y,w,h}
#define RgnFigType_poly		3	//多角形		※未対応
/*--------------------------------------------------------------------------*/
//イテレータ
typedef struct _ST_RgnMap_Iter {
	const void*	pRgnMap;	//調べるRgnMapのレジストリキー
	int		x, y;		//調べる座標
	int		iRgnDef;	//次に調べるRgnDefのインデクス
} ST_RgnMap_Iter;
/****************************************************************************
 *	グローバル関数
 ****************************************************************************/
int RgnMap_FindFirst(ST_RgnMap_Iter* pIter/*NULL可*/, const void* pRgnMap, int x, int y);
int RgnMap_FindNext(ST_RgnMap_Iter* pIter);
#ifdef  __cplusplus
}//extern "C"
#endif//__cplusplus
#endif//__CLIP_RGNM_H__
