//-*-c++-*-
#ifndef INCLUDED_TestBehavior_h_
#define INCLUDED_TestBehavior_h_

#include "Behaviors/Leapers.h"

#include <sstream>
#include <string>
using namespace std;

template <class T>
inline std::string to_string (const T& t)
{
  std::stringstream ss;
  ss << t;
  return ss.str();
}

#nodeclass TestBehavior: StateNode

    #shortnodeclass DoMapBuilder : MapBuilderNode($,MapBuilderRequest::cameraMap) : constructor
        NEW_SHAPE(gazePoly, PolygonData, new PolygonData(localShS, Lookout::groundSearchPoints(), false));
        mapreq.searchArea = gazePoly;
        mapreq.motionSettleTime = 2000;
        mapreq.maxDist = 1e6;
        mapreq.clearShapes = true;
        mapreq.pursueShapes = false;
        mapreq.rawY = true;
        mapreq.addObjectColor(blobDataType, "blue");
        mapreq.addObjectColor(blobDataType, "green");
	mapreq.minBlobAreas[ProjectInterface::getColorIndex("blue")] = 100;
	mapreq.minBlobAreas[ProjectInterface::getColorIndex("green")] = 100;

    #shortnodeclass FindSketches : VisualRoutinesBehavior : DoStart
        NEW_SKETCH(camFrame, uchar, sketchFromSeg());
        NEW_SKETCH(orange_stuff, bool, visops::colormask(camFrame,"orange"));
        NEW_SKETCH(neighbors, uchar, visops::neighborSum(orange_stuff, visops::EightWayConnect));
        NEW_SKETCH(edges, bool, orange_stuff & neighbors < 8);
        NEW_SKETCH(camY, uchar, sketchFromRawY());
	NEW_SKETCH(labels, uint, visops::labelcc(green_stuff, 10));
	NEW_SKETCH(areas, uint, visops::areacc(labels));
	NEW_SKETCH(maximums, uint, visops::max(areas, 1000));
	NEW_SKETCH(distance, uint, visops::edist(green_stuff));

    #shortnodemethod setup
        #statemachine
            startnode : StateNode
        #endstatemachine

#endnodeclass

#endif
