#include "Behaviors/StateMachine.h"

$nodeclass CountEasterEggsPart1 : VisualRoutinesStateNode {

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

  $nodeclass ExamineResults : VisualRoutinesStateNode : doStart {
    NEW_SHAPEVEC(myEllipses, EllipseData, select_type<EllipseData>(camShS));
    cout << "Found " << myEllipses.size() << " ellipses." << endl;

    SHAPEVEC_ITERATE(myEllipses, EllipseData, e) {
      NEW_SHAPE(e1, EllipseData, new EllipseData(camShS, e->getCentroid(), 1.5f * e->getSemimajor(), 1.5f * e->getSemiminor(), e->getOrientation()));
      e1->setColor(e->getColor());
    } END_ITERATE;
  }

  $setupmachine{
    LookForEllipses =MAP=> ExamineResults
  }

}

REGISTER_BEHAVIOR(CountEasterEggsPart1);

