#include "Behaviors/StateMachine.h"

$nodeclass Lab6part5 : VisualRoutinesStateNode {

	$nodeclass LocateCan : VisualRoutinesStateNode: doStart {
		NEW_SKETCH(camFrame, uchar, sketchFromSeg());
		NEW_SKETCH(blueStuff, bool, visops::colormask(camFrame,"blue"));
		NEW_SKETCH(blobs, uint, visops::labelcc(blueStuff));
		NEW_SKETCH(blobSize, uint, visops::areacc(blobs));
		NEW_SKETCH(can, bool, blobSize >= 1000);
	
		if (can->max() == 1) {
			postStateCompletion();
		}
		else {
			postStateFailure();
		}
	}

	$setupmachine {
		launch: StateNode =N=> flipCan1 =C=> locate
		locate =C=> flipCan2 =C=> launch
		locate =F=> SpeechNode("No can is found") =C=> StateNode =T(5000)=> launch
	
		locate: LocateCan
		flipCan1: DynamicMotionSequenceNode("flipcan.mot")
		flipCan2: DynamicMotionSequenceNode("flipcan2.mot")
	}

}
REGISTER_BEHAVIOR(Lab6part5);
