#include "Behaviors/StateMachine.h"

$nodeclass FindEggs {

    $nodeclass Find : MapBuilderNode(MapBuilderRequest::worldMap) : doStart {
        mapreq.addObjectColor(ellipseDataType, "red");
        mapreq.addObjectColor(ellipseDataType, "blue");
        mapreq.addObjectColor(ellipseDataType, "green");
        mapreq.addObjectColor(ellipseDataType, "black");
    }


    $nodeclass Report : doStart {
        NEW_SHAPEVEC(ellipse_shapes, EllipseData, 
                    select_type<EllipseData>(camShS));

        //if ( ellipse_shapes.size() > 0) {
        //    NEW_SKETCH(ellipse0,bool,ellipse_shapes[0]->getRendering());
        //}

        int count = 0;
        SHAPEVEC_ITERATE(ellipse_shapes, EllipseData, myellipse) {
            NEW_SHAPE(ellipse0, EllipseData,
                     new EllipseData(camShS,myellipse->centerPt(),
                                     1.5 * myellipse->getSemimajor(),
                                     1.5 * myellipse->getSemiminor()));
            ellipse0->setColor(myellipse->getColor());

            count++;
        } END_ITERATE;

        cout << "There are " << count << " ellipses \n";
    }
    
    $setupmachine {
        Find =C=> Report =N=> SpeechNode("done")
    }

}

REGISTER_BEHAVIOR(FindEggs);
