Example #1
0
TEST_F(CoordinateTransformableDataObject_test, TransformAppliedToVisibleBounds)
{
    const auto coordsSpec = ReferencedCoordinateSystemSpecification(
        CoordinateSystemType::geographic,
        "testSystem",
        {}, {}, {}, {});
    const auto targetCoordsSpec = ReferencedCoordinateSystemSpecification(
        CoordinateSystemType::geographic,
        "otherTestSystem",
        {}, {}, {}, {});

    auto data = genPolyData<TransformedPolyData>();
    data->specifyCoordinateSystem(coordsSpec);
    auto transform = vtkSmartPointer<vtkTransform>::New();
    transform->Translate(3, 4, 5);
    data->setTransform(transform);

    const auto dataSetBounds = DataBounds(data->dataSet()->GetBounds());
    const auto dataBounds = data->bounds();
    const auto shiftedBounds = data->bounds().shifted(vtkVector3d(3, 4, 5));
    auto rendered = data->createRendered();
    rendered->setDefaultCoordinateSystem(targetCoordsSpec);
    const auto visibleBounds = rendered->visibleBounds();

    ASSERT_EQ(dataSetBounds, dataBounds);
    ASSERT_EQ(shiftedBounds, visibleBounds);
}
Example #2
0
void RendererImplementationBase3D::removeFromBounds(RenderedData * renderedData, unsigned int subViewIndex)
{
    auto & dataBounds = m_viewportSetups[subViewIndex].dataBounds;

    dataBounds = {};

    for (auto visualization : m_renderView.visualizations(subViewIndex))
    {
        if (visualization == renderedData)
        {
            continue;
        }

        assert(dynamic_cast<RenderedData *>(visualization));
        auto rendered = static_cast<RenderedData *>(visualization);
        dataBounds.add(rendered->visibleBounds());
    }

    updateAxes();
}
Example #3
0
void RendererImplementationBase3D::updateBounds()
{
    // TODO update only for relevant views

    for (size_t viewportIndex = 0; viewportIndex < m_viewportSetups.size(); ++viewportIndex)
    {
        auto & dataBounds = m_viewportSetups[viewportIndex].dataBounds;

        dataBounds = {};

        for (auto visualization : m_renderView.visualizations(int(viewportIndex)))
        {
            assert(dynamic_cast<RenderedData *>(visualization));
            auto rendered = static_cast<RenderedData *>(visualization);
            dataBounds.add(rendered->visibleBounds());
        }
    }

    updateAxes();
}