#include "Behaviors/StateMachine.h"

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

	$nodeclass ReportEllipses : 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) {
			cout << "Id: " << myellipse->getId() << " Color: " << myellipse->getColor() << " Area: " << myellipse->getArea() << endl;
			NEW_SHAPE(ellipse1, EllipseData,new EllipseData(camShS, myellipse->centerPt(),1.5*myellipse->getSemimajor(),1.5*myellipse->getSemiminor(), M_PI/6));
			ellipse1->setColor(myellipse->getColor());
		} END_ITERATE;
	}
	$setupmachine{
		FindStuff =C=> ReportEllipses
	}
}

REGISTER_BEHAVIOR(Lab4p2);
