#include "Behaviors/StateMachine.h"

$nodeclass ElipseDetector : VisualRoutinesStateNode {
    $nodeclass BuildMap : MapBuilderNode : doStart {
        mapreq.addObjectColor(ellipseDataType,"red");
    }
              
    $nodeclass Reporter : VisualRoutinesStateNode : doStart {
        cout << "there were " << camShS.allShapes().size() << " shapes in the image." << endl;
        NEW_SHAPEVEC(elipse_shapes, EllipseData, select_type<EllipseData>(camShS));
        SHAPEVEC_ITERATE(elipse_shapes, EllipseData, ellipse){
            NEW_SHAPE(ellipse1, EllipseData, new EllipseData(camShS, ellipse->getCentroid(), 
                1.5*(ellipse->getSemimajor()), 1.5*(ellipse->getSemiminor()),ellipse->getOrientation()));
            ellipse1->setColor(ellipse->getColor());
        } END_ITERATE;
    }
                          
    $setupmachine{
        builder: BuildMap
        builder =MAP=> Reporter =T(5000)=> builder
    }
}
                                      
REGISTER_BEHAVIOR(ElipseDetector);
