#include "Behaviors/StateMachine.h"

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

	$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() < 150) {
				camShS.deleteShape(myEllipse);
			}
		END_ITERATE;

		//Connect line between any 2 given ellipse centers
		SHAPEVEC_ITERATE(ellipse_shapes, EllipseData, myEllipse1)
			SHAPENEXT_ITERATE(ellipse_shapes, EllipseData, myEllipse1, myEllipse2)
				NEW_SHAPE(newLine, LineData,
  					new LineData(camShS, myEllipse1->getCentroid(),
					myEllipse2->getCentroid()));
			END_ITERATE;
 		END_ITERATE;
	}

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