ILayerNOde 功能
ILayerItem* LayerNode::getLayerItemByPoint(int _left, int _top)
{
// сначала пикаем детей
for (VectorILayerNode::iterator iter = mChildItems.begin(); iter!=mChildItems.end(); ++iter)
{
ILayerItem * item = (*iter)->getLayerItemByPoint(_left, _top);
if (nullptr != item) return item;
}
for (VectorLayerItem::iterator iter=mLayerItems.begin(); iter!=mLayerItems.end(); ++iter)
{
ILayerItem * item = (*iter)->getLayerItemByPoint(_left, _top);
if (nullptr != item) return item;
}
return nullptr;
}第一个循环式找子节点中的item 找到相应的LayerNode 调用第二个for循环
第二个循环找到ILayerItem 中找到相应的ILayerItem
ILayerNode查询机制
本文介绍了ILayerNode类中的getLayerItemByPoint方法实现原理,该方法通过两层循环遍历子节点及直接关联的图层项,以查找指定坐标上的ILayerItem对象。首先检查所有子节点,若未找到,则继续在当前层级的图层项中查找。
179

被折叠的 条评论
为什么被折叠?



