示例#1
0
文件: View.cpp 项目: romoadri21/boi
QList<QGraphicsItem*> View::ItemsAt(const QPoint& point, int viewLayerIds)
{
    QList<QGraphicsItem*> items = m_pScene->items(point);
    QList<QGraphicsItem*> filteredItems;

    for (int i=0; i < items.size(); i++)
    {
        QGraphicsItem* pItem = items.at(i);

        if (pItem->type() != m_rootItemType)
        {
            if (LayerId(pItem) & viewLayerIds)
            {
                filteredItems.append(pItem);
            }
        }
    }

    return filteredItems;
}
示例#2
0
文件: View.cpp 项目: romoadri21/boi
QList<QGraphicsItem*> View::ItemsIn(const QRectF& rect,
                                    ViewLayerId viewLayerId,
                                    bool intersect)
{
    Qt::ItemSelectionMode mode = (intersect) ?
                                 (Qt::IntersectsItemShape) :
                                 (Qt::ContainsItemShape);

    QList<QGraphicsItem*> items;
    QList<QGraphicsItem*> filteredItems;

    if (viewLayerId == ViewLayerId_Main)
    {
        QRectF mappedRect = m_pMainLayer->mapRectToScene(rect);
        items = m_pScene->items(mappedRect, mode);
    }
    else
    {
        items = m_pScene->items(rect, mode);
    }


    for (int i=0; i < items.size(); i++)
    {
        QGraphicsItem* pItem = items.at(i);

        if (pItem->type() != m_rootItemType)
        {
            if (LayerId(pItem) == viewLayerId)
            {
                filteredItems.append(pItem);
            }
        }
    }

    return filteredItems;
}
示例#3
0
LayerId Base::getLayerId() const {
    if (lay_ == NULL) {
        return LayerId(0);
    }
    return lay_->getId();
}