#include "Behaviors/StateMachine.h"
#include "DualCoding/ShapeTypes.h"

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

	$setupmachine {
		BuildMap =MAP=> CountMap
	}

	$nodeclass CountMap : VisualRoutinesStateNode : doStart {
		cout << "There were " << camShS.allShapes().size() << " ellipses." << endl;
		NEW_SHAPEVEC(lines, LineData, select_type<LineData>(camShS));

		SHAPEVEC_ITERATE(lines, LineData, myblob)
			if (myblob->getLength() > 200) {
			} else
				myblob.deleteShape();
		END_ITERATE;
		NEW_SHAPEVEC(blobs, EllipseData, select_type<EllipseData>(camShS));

		SHAPEVEC_ITERATE(blobs, EllipseData, myblob)
			if (myblob->getSemimajor() > 20) {
				//NEW_SHAPE(ellipse, EllipseData, new EllipseData(camShS, myblob->getCentroid(), myblob->getSemimajor() * 1.5, myblob->getSemiminor() * 1.5, myblob->getOrientation()));
				//ellipse->setColor(myblob->getColor());
			} else
				myblob.deleteShape();
		END_ITERATE;
	}
	
}

REGISTER_BEHAVIOR(Lab3part2part1);
