/*
	ARTemis (Graphic Editor for FM-TOWNS)
	(c) MATSUUCHI Ryosuke 1992,1993

	poly.c

	｢ポリゴン｣コマンド
*/


#include <stdio.h>
#include "ge.h"
#include "imageman.h"
#include "dispman.h"


void cmd_polygon()
{
	for (;;)
	{
		if (area_input(AREA_POLYGON) != 0)
			break;
		EIMbackup();
		int ax1,ay1,ax2,ay2;
		area_getboundxy(&ax1,&ay1,&ax2,&ay2);
		int x,y,mix;
		mix = getmixrate();
		ax1 = _lim(ax1, 0, EIMgetxsize());
		ax2 = _lim(ax2, 0, EIMgetxsize());
		ay1 = _lim(ay1, 0, EIMgetysize());
		ay2 = _lim(ay2, 0, EIMgetysize());
		for (y=ay1; y<=ay2; y++)
		{
			x = ax1 + area_chkxylen(ax1,ax2,y,YES);
			while (x<=ax2)
			{
				int l;
				if ((l = area_chkxylen(x,ax2,y,NO)) == 0)
					break;
				EIMgrayhline(x,x+l-1,y,forecol,mix,NO);
				x += l + area_chkxylen(x+l,ax2,y,YES);
			}
		}
	}
}


/* end of poly.c */
