/**
 * @author Matt Dee (medee)
 * @author Alex Franchuk (afranchu)
 */
#include "Behaviors/StateMachine.h"

#define COLOR "red"

$nodeclass ShapeExtract {

    $nodeclass GetShape : MapBuilderNode(MapBuilderRequest::worldMap) : doStart {
        mapreq.addObjectColor(ellipseDataType, COLOR);
    }

    $nodeclass CountShapes : doStart {
        NEW_SHAPEVEC(ellipses, EllipseData,
            select_type<EllipseData>(camShS));
        cout << "Num Ellipses: " << ellipses.size() << endl;

        for (unsigned int i = 0; i < ellipses.size(); i++) {
            NEW_SHAPE(ellipse, EllipseData, new EllipseData(ellipses[i].getData()));
            ellipse->setSemimajor(ellipse->getSemimajor()*1.5);
            ellipse->setSemiminor(ellipse->getSemiminor()*1.5);
        }
    }

    $setupmachine {
        GetShape =C=> CountShapes =N=> SpeechNode("Done!")
    }

}

REGISTER_BEHAVIOR(ShapeExtract);
