Пример #1
0
void RendererImplementationPlot::handlePlotSelectionEvent(vtkObject * DEBUG_ONLY(subject), unsigned long /*eventId*/, void * callData)
{
    assert(subject == m_chart.Get());

    auto plot = reinterpret_cast<vtkPlot *>(callData);

    if (!plot)
    {
        m_renderView.clearSelection();
        return;
    }

    auto contextData = contextDataContaining(*plot);
    assert(contextData);

    auto selection = VisualizationSelection(
        contextData,
        contextData->defaultVisualizationPort(),
        IndexType::points);

    if (auto indexArray = plot->GetSelection())
    {
        selection.indices.resize(indexArray->GetNumberOfValues());
        for (vtkIdType i = 0; i < indexArray->GetNumberOfValues(); ++i)
        {
            selection.indices[static_cast<size_t>(i)] = indexArray->GetValue(i);
        }
    }

    m_selectedPlot = contextData;

    m_renderView.setVisualizationSelection(selection);
}
Пример #2
0
void AbstractRenderView::onSetSelection(const DataSelection & selection)
{
    assert(selection.dataObject && dataObjects().contains(selection.dataObject));

    const auto vis = visualizationFor(selection.dataObject);
    assert(vis);

    auto && newVisSelection = VisualizationSelection(
        selection,
        vis,
        vis->defaultVisualizationPort()
    );

    setVisualizationSelection(newVisSelection);
}