#include "Behaviors/StateMachine.h"

$nodeclass InsidePolygonExtended: VisualRoutinesStateNode {
	$nodeclass GetEggs : MapBuilderNode : doStart {
		mapreq.addObjectColor(ellipseDataType, "red");
		mapreq.addObjectColor(ellipseDataType, "blue");
	}

	$nodeclass MapEggs : VisualRoutinesStateNode : doStart {
		//Get all shapes and printout result
		NEW_SHAPEVEC(ellipse_shapes, EllipseData, select_type<EllipseData>(camShS));

		//Delete noise shapes
		SHAPEVEC_ITERATE(ellipse_shapes, EllipseData, myEllipse)
			if(myEllipse->getArea() < 170) {
				camShS.deleteShape(myEllipse);
			}
		END_ITERATE;

		//Find the lines between the 3 ellipses
		Shape<LineData> lines[10];
		int linePos = 0;
		SHAPEVEC_ITERATE(ellipse_shapes, EllipseData, myEllipse1)
			SHAPENEXT_ITERATE(ellipse_shapes, EllipseData, myEllipse1, myEllipse2)
				IsColor redtest("red");
				if(redtest(myEllipse1) && redtest(myEllipse2))
				{
	  				lines[linePos] = new LineData(camShS, myEllipse1->getCentroid(),
							myEllipse2->getCentroid());
					linePos++;
				}
			END_ITERATE;
 		END_ITERATE;
		
		//Create the polygon from the 3 lines found
		//NEW_SHAPE(newPolygon, PolygonData, new Data(lines[0],lines[1],lines[2]));
		
	}

		

	$setupmachine {
		GetEggs =C=> MapEggs
	}
}
REGISTER_BEHAVIOR (InsidePolygonExtended);
