#include "Behaviors/StateMachine.h"

using namespace DualCoding;


$nodeclass PinkNearBlueBlobs : VisualRoutinesStateNode : doStart {
	camSkS.clear();
	NEW_SKETCH(camFrame, uchar, sketchFromSeg());
	NEW_SKETCH(orange_stuff, bool,
		visops::colormask(camFrame,"orange"));
	NEW_SKETCH(o_edge, bool, visops::edge(orange_stuff));
	NEW_SKETCH(o_skel, bool, visops::skel(orange_stuff));
	NEW_SKETCH(o_neighbs, uchar,
		visops::neighborSum(orange_stuff));


	NEW_SKETCH(blue_stuff, bool,
		visops::colormask(camFrame,"blue"));
	NEW_SKETCH(b_cc, uint, visops::labelcc(blue_stuff));
	NEW_SKETCH(b_area, uint, visops::areacc(b_cc));
	NEW_SKETCH(b_max, bool, b_area == b_area->max());


	NEW_SKETCH(b_dist, uint, visops::edist(b_max));
	NEW_SKETCH(pink_stuff, bool,
		visops::colormask(camFrame,"pink"));
	NEW_SKETCH(p_cc, uint, visops::labelcc(pink_stuff));
	NEW_SKETCH(p_area, uint, visops::areacc(p_cc));
	NEW_SKETCH(p_blobs, bool, p_area > 10);
	NEW_SKETCH(bo_dist, uint, b_dist*p_blobs);
		int const min_index = bo_dist->findMinPlus();
		int const min_label = p_cc[min_index];
	NEW_SKETCH(bo_win, bool, p_cc == min_label);
	NEW_SKETCH(rawY, uchar, sketchFromRawY());

}
REGISTER_BEHAVIOR( PinkNearBlueBlobs ); 
