Exemplo n.º 1
0
void Relation::visitRw(ElementProvider& map, ElementVisitor& filter)
{
  filter.visit(map.getRelation(getId()));

  const vector<RelationData::Entry> members = getMembers();

  for (size_t i = 0; i < members.size(); i++)
  {
    const RelationData::Entry& m = members[i];
    if (map.containsElement(m.getElementId()))
    {
      if (m.getElementId().getType() == ElementType::Node &&
        map.containsNode(m.getElementId().getId()))
      {
        map.getNode(m.getElementId().getId())->visitRw(map, filter);
      }
      else if (m.getElementId().getType() == ElementType::Way &&
        map.containsWay(m.getElementId().getId()))
      {
        map.getWay(m.getElementId().getId())->visitRw(map, filter);
      }
      else if (m.getElementId().getType() == ElementType::Relation &&
        map.containsRelation(m.getElementId().getId()))
      {
        map.getRelation(m.getElementId().getId())->visitRw(map, filter);
      }
      else
      {
        assert(false);
      }
    }
  }
}
Exemplo n.º 2
0
void Node::visitRo(const ElementProvider& map, ElementVisitor& filter) const
{
  filter.visit(map.getNode(getId()));
}
Exemplo n.º 3
0
void Node::visitRw(ElementProvider& map, ElementVisitor& filter)
{
  filter.visit(map.getNode(getId()));
}
Exemplo n.º 4
0
void Node::visitRo(const OsmMap& map, ElementVisitor& filter) const
{
  filter.visit(map.getNode(getId()));
}
Exemplo n.º 5
0
void Node::visitRw(OsmMap& map, ElementVisitor& filter)
{
  filter.visit(map.getNode(getId()));
}
Exemplo n.º 6
0
 // Accepts visitor.
 void accept(ElementVisitor& visitor) const
 {
     visitor.visitRelation(*this);
 }