#include "Behaviors/StateMachine.h"

$nodeclass Lab4Q1 : VisualRoutinesStateNode {

  $nodeclass EggFind : MapBuilderNode : doStart {
    mapreq.addObjectColor(ellipseDataType, "green");
    mapreq.addObjectColor(lineDataType, "green");
    mapreq.addObjectColor(ellipseDataType, "blue");
    mapreq.addObjectColor(ellipseDataType, "red");
  }
  
  $nodeclass Counter : VisualRoutinesStateNode : doStart{
    NEW_SHAPEVEC(egg_shapes, EllipseData, select_type<EllipseData>(camShS));
    SHAPEVEC_ITERATE(egg_shapes, EllipseData, myegg){
      NEW_SHAPE(ellipse0,EllipseData,
                new EllipseData(camShS, 
                  Point(myegg->getCentroid()),
                  myegg->getSemimajor()*1.5,
                  myegg->getSemiminor()*1.5,
                  myegg->getOrientation()));
      ellipse0->setColor(myegg->getColor());
    }END_ITERATE;
    cout << "There are " << egg_shapes.size() << " ellipses." << endl;
  }
  $setupmachine{
    EggFind =C=> Counter =C=> SpeechNode("done!")
  }

}

REGISTER_BEHAVIOR(Lab4Q1);
