#include "Behaviors/StateMachine.h"

$nodeclass SketchOps : VisualRoutinesStateNode {
	$nodeclass FindStuff : MapBuilderNode : doStart {
		mapreq.addObjectColor(lineDataType, "blue");
		mapreq.addObjectColor(ellipseDataType, "red");
	}
	$nodeclass Wedge : doStart {
		NEW_SHAPEVEC(line_shapes, LineData, select_type<LineData>(camShS));
		NEW_SHAPEVEC(ellipses_shapes, EllipseData, select_type<EllipseData>(camShS));
		if (line_shapes.size() < 2)
		{
			cout << "Insufficient number of lines" << endl;
		}
		else
		{
			NEW_SKETCH(leftline, bool, visops::topHalfPlane(line_shapes[0]));
			NEW_SKETCH(rightline, bool, visops::topHalfPlane(line_shapes[1]));
			NEW_SKETCH(wedge_area, bool, leftline & rightline);
			NEW_SKETCH(camFrame, uchar, sketchFromSeg());
			NEW_SKETCH(red_stuff, bool, visops::colormask(camFrame, "red"));
			NEW_SKETCH(intersect, bool, red_stuff & wedge_area);
		}
		
	}
	$setupmachine {
		FindStuff =C=> Wedge
	}
}

REGISTER_BEHAVIOR(SketchOps);
