  virtual void DoStart() {
    VisualRoutinesBehavior::DoStart();

    const int orange_index = ProjectInterface::getColorIndex("orange");
    const int green_index = ProjectInterface::getColorIndex("green");
    const int yellow_index = ProjectInterface::getColorIndex("yellow");

    localShS.clear(); // clear manually so we don't lose gazePoly

    vector<Point> gazePts;
    gazePts.push_back(Point(220,80,-100));
    gazePts.push_back(Point(350,300,-100));
    gazePts.push_back(Point(1000,0,-100));
    gazePts.push_back(Point(350,-300,-100));
    gazePts.push_back(Point(220,-80,-100));
    gazePts.push_back(Point(300,0,-100));
    NEW_SHAPE(gazePoly, PolygonData, new PolygonData(localShS, gazePts, false));

    MapBuilderRequest req(MapBuilderRequest::localMap);
    req.searchArea = gazePoly;
    req.pursueShapes = true;
    req.maxDist = 1000;
    req.rawY = true;
    req.clearShapes = false;
    req.objectColors[ellipseDataType].insert(orange_index);
    req.objectColors[ellipseDataType].insert(green_index);
    req.objectColors[ellipseDataType].insert(yellow_index);

    unsigned int mapreq_id = mapBuilder.executeRequest(req);
    erouter->addListener(this, EventBase::mapbuilderEGID, mapreq_id, EventBase::statusETID);
  }
