#include "Behaviors/StateMachine.h"

$nodeclass Lab5Part3 : VisualRoutinesStateNode {

  $nodeclass BuildMap : MapBuilderNode($,MapBuilderRequest::worldMap) : doStart {
    mapreq.addAllObjectColors(lineDataType);
  }

  $nodeclass ExamineResults : VisualRoutinesStateNode : doStart {
    // Get the lines.
    NEW_SHAPEVEC(lines, LineData, select_type<LineData>(worldShS));

    if (lines.size() == 0)
        cout << "No lines found :(." << endl;
    else {
        // Draw ellipses at the line's end points.
        NEW_SHAPE(e1, EllipseData, new EllipseData(worldShS, lines[0]->firstPt(), 25, 25));
        NEW_SHAPE(e2, EllipseData, new EllipseData(worldShS, lines[0]->secondPt(), 25, 25));
        VRmixin::drawShapes.push_back(e1);
        VRmixin::drawShapes.push_back(e2);
    }
  }

  $setupmachine{
    BuildMap =MAP=> ExamineResults
  }

}

REGISTER_BEHAVIOR(Lab5Part3);

