Ejemplo n.º 1
0
/*protected*/
void
AbstractSTRtree::query(const void* searchBounds, const AbstractNode& node,
		ItemVisitor& visitor)
{

	const BoundableList& boundables = *(node.getChildBoundables());

	for (BoundableList::const_iterator i=boundables.begin(), e=boundables.end();
			i!=e; i++)
	{
		const Boundable* childBoundable = *i;
		if (!getIntersectsOp()->intersects(childBoundable->getBounds(), searchBounds)) {
			continue;
		}

		if(const AbstractNode *an=dynamic_cast<const AbstractNode*>(childBoundable))
		{
			query(searchBounds, *an, visitor);
		}
		else if (const ItemBoundable *ib=dynamic_cast<const ItemBoundable *>(childBoundable))
		{
			visitor.visitItem(ib->getItem());
		}
		else
		{
			assert(0); // unsupported childBoundable type
		}
	}
}
Ejemplo n.º 2
0
void TexToolItem::foreachItem(ItemVisitor& visitor) {
	for (std::size_t i = 0; i < _children.size(); i++) {
		// Visit the children
		visitor.visit(_children[i]);

		// Propagate the visitor class down the hierarchy
		_children[i]->foreachItem(visitor);
	}
}
Ejemplo n.º 3
0
/*private*/
void
NodeBase::visitItems(const Envelope* searchEnv, ItemVisitor& visitor)
{
	// would be nice to filter items based on search envelope, but can't
	// until they contain an envelope
	for (vector<void*>::iterator i=items->begin(), e=items->end();
			i!=e; i++)
	{
		visitor.visitItem(*i);
	}
}
Ejemplo n.º 4
0
/*private*/
void
NodeBase::visitItems(const Envelope* searchEnv, ItemVisitor& visitor)
{
    ::geos::ignore_unused_variable_warning(searchEnv);

    // would be nice to filter items based on search envelope, but can't
    // until they contain an envelope
    for(auto& item : items) {
        visitor.visitItem(item);
    }
}
Ejemplo n.º 5
0
void
AbstractSTRtree::iterate(ItemVisitor& visitor)
{
    for (BoundableList::const_iterator i=itemBoundables->begin(), e=itemBoundables->end();
			i!=e; i++)
	{
		const Boundable* boundable = *i;
		if (const ItemBoundable *ib=dynamic_cast<const ItemBoundable *>(boundable))
		{
			visitor.visitItem(ib->getItem());
		}
        }
}
Ejemplo n.º 6
0
/*private*/
void
NodeBase::visitItems(const Envelope* searchEnv, ItemVisitor& visitor)
{
    ::geos::ignore_unused_variable_warning(searchEnv);

	// would be nice to filter items based on search envelope, but can't
	// until they contain an envelope
	for (vector<void*>::iterator i=items.begin(), e=items.end();
			i!=e; i++)
	{
		visitor.visitItem(*i);
	}
}
Ejemplo n.º 7
0
void EditableTextItem::accept(const ItemVisitor& visitor) {
    visitor.visit(this);
}
Ejemplo n.º 8
0
Archivo: main.cpp Proyecto: CCJY/coliru
 virtual void accept(ItemVisitor& visitor) {
     visitor.visit(*this);
 }