#include "Behaviors/StateMachine.h"

$nodeclass Draw {
    $nodeclass FindLines : MapBuilderNode(MapBuilderRequest::worldMap) : doStart {
        mapreq.addObjectColor(lineDataType, "red");
    }

    $nodeclass DrawCircles : doStart {
        NEW_SHAPEVEC(lines, LineData, select_type<LineData>(worldShS));
        if(lines.empty()) {
            cout << "No lines" << endl;
            return;
        }

        SHAPEVEC_ITERATE(lines, LineData, line) {
            NEW_SHAPE(end1, EllipseData, new EllipseData(worldShS, line->end1Pt()));
            NEW_SHAPE(end2, EllipseData, new EllipseData(worldShS, line->end2Pt()));
            VRmixin::drawShapes.push_back(end1);
            VRmixin::drawShapes.push_back(end2);
        } END_ITERATE;
    }

    $setupmachine {
        FindLines =C=> DrawCircles
    }
}

REGISTER_BEHAVIOR(Draw);
