#include "Behaviors/StateMachine.h"

$nodeclass EllipseDrawer2 : VisualRoutinesStateNode {

	$nodeclass FindEllipses : MapBuilderNode : doStart {
		mapreq.addObjectColor(ellipseDataType, "red");
		mapreq.addObjectColor(ellipseDataType, "green");
		mapreq.addObjectColor(ellipseDataType, "blue");
	}

	$nodeclass DrawEllipses : VisualRoutinesStateNode : doStart {

		NEW_SHAPEVEC(ellipse_shapes, EllipseData, select_type<EllipseData>(camShS));
		if (ellipse_shapes.size() > 0) {
			NEW_SKETCH(ellipse0, bool, ellipse_shapes[0]->getRendering());
		}
	
		SHAPEVEC_ITERATE(ellipse_shapes, EllipseData, myellipse)
			NEW_SHAPE(ellipsey, EllipseData, new EllipseData(camShS,
																myellipse->getCentroid(),
																1.5*myellipse->getSemimajor(),
																1.5*myellipse->getSemiminor(),
																myellipse->getOrientation()));
			ellipsey->setColor(myellipse->getColor());
		END_ITERATE;
		
	}

	$setupmachine {
		FindEllipses =C=> DrawEllipses =N=> SpeechNode("done")
	}
}
REGISTER_BEHAVIOR(EllipseDrawer2);
