#include "Behaviors/StateMachine.h"
$nodeclass Eggs2 : VisualRoutinesStateNode{
	$nodeclass FindEllipses : MapBuilderNode : doStart{
		mapreq.addAllObjectColors(ellipseDataType);
		mapreq.addAllObjectColors(lineDataType);
	}
 	$nodeclass CountEllipses : VisualRoutinesStateNode : doStart{
		NEW_SHAPEVEC(ellipses, EllipseData, select_type<EllipseData>(camShS));
		NEW_SHAPEVEC(lines, LineData, select_type<LineData>(camShS));
    		if(lines.size()<=0)
		{
			cout << "No lines detected" << endl;
		}
		else
		{
			int left = 0, right=0;
			lines[0]->setInfinite();
			SHAPEVEC_ITERATE(ellipses, EllipseData, myellipse)
				if(lines[0]->pointIsLeftOf(myellipse->getCentroid()))
				{
					left=left+1;
				}
				 if(lines[0]->pointIsRightOf(myellipse->getCentroid()))
                                {
                                        right=right+1;
                                }

			END_ITERATE;
			cout << "Left: " << left << endl;
			cout << "Right: "<< right << endl;
		}
	}

	$setupmachine{
		FindEllipses =C=> CountEllipses
	}
}
REGISTER_BEHAVIOR(Eggs2);
