#include "Behaviors/StateMachine.h"

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

	$setupmachine {
		BuildMap =MAP=> CountMap
	}

	$nodeclass CountMap : VisualRoutinesStateNode : doStart {
		NEW_SHAPEVEC(blobs, EllipseData, select_type<EllipseData>(camShS));
		
		int ellipses = 0;
		SHAPEVEC_ITERATE(blobs, EllipseData, myblob)
			if (myblob->getSemimajor() > 20) 
				ellipses++;
			else
				myblob.deleteShape();
		END_ITERATE;
		
		cout << "There were " << ellipses << " ellipses." << endl;
	}
}

REGISTER_BEHAVIOR(Lab3part1);
