#include "Behaviors/StateMachine.h"

$nodeclass HW3_Counting : VisualRoutinesStateNode : doStart {
  camSkS.clear();
  NEW_SKETCH(camFrame, uchar, sketchFromSeg());

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

  NEW_SKETCH(pink_stuff, bool, visops::colormask(camFrame,"pink"));
  NEW_SKETCH(p_area, uint, visops::areacc(pink_stuff));
  NEW_SKETCH(p_blobs, bool, p_area > 10);
  NEW_SKETCH(p_cc, uint, visops::labelcc(p_blobs));
  int pink_count = p_cc->max();

  cout << "BLUE: " << blue_count << "\tPINK: " << pink_count << endl;

  if (blue_count >= pink_count) {
    NEW_SKETCH(result, bool, b_blobs);
  } else {
    NEW_SKETCH(result, bool, p_blobs);
  }
}

REGISTER_BEHAVIOR(HW3_Counting);
