#include "Behaviors/StateMachine.h"

$nodeclass MyAprilTest : VisualRoutinesStateNode {

  $nodeclass Look : MapBuilderNode($,MapBuilderRequest::cameraMap) : constructor {
    cout << "Point the camera at an April Tag before starting this demo." << endl;
    mapreq.setAprilTagFamily();  // Use the default tag family
   }

  $nodeclass Report : SpeechNode : doStart {
    NEW_SHAPEVEC(tags, AprilTagData, select_type<AprilTagData>(camShS));
    textstream << "I saw " << tags.size() << " april tag"
               << ( tags.size() == 1 ? "" : "s" );
  }

  $setupmachine{
    Look =MAP=> Report
  }

}

REGISTER_BEHAVIOR (MyAprilTest);
