#include "Behaviors/StateMachine.h"

$nodeclass Lab5Q2 : VisualRoutinesStateNode {

  // Looks at scene and extracts ellipses
  $nodeclass AddToMap : MapBuilderNode(MapBuilderRequest::worldMap) : doStart {
    cout << "adding to my map" << endl;
    mapreq.pursueShapes = true;
    //mapreq.addObjectColor(blobDataType, "red");
    //mapreq.addOccluderColor(blobDataType, "red");

    mapreq.addObjectColor(lineDataType, "blue");
    mapreq.addOccluderColor(lineDataType, "red");
    cout << "done adding to my map" << endl;
  }

  // Examines the scene and reports number of ellipses
  $nodeclass Report : VisualRoutinesStateNode : doStart {
    NEW_SHAPEVEC(lines, LineData, select_type<LineData>(worldShS));

    cout << "I found " << lines.size() << " lines" << endl;

    postStateCompletion();
  }  

  $setupmachine {
    a : AddToMap =C=> r
    r : Report =C=> SpeechNode("done")

  }
}

REGISTER_BEHAVIOR(Lab5Q2);
