diff options
Diffstat (limited to 'src/render/jobs/pickboundingvolumejob.cpp')
-rw-r--r-- | src/render/jobs/pickboundingvolumejob.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/render/jobs/pickboundingvolumejob.cpp b/src/render/jobs/pickboundingvolumejob.cpp index 4b20d61b4..3733cfb56 100644 --- a/src/render/jobs/pickboundingvolumejob.cpp +++ b/src/render/jobs/pickboundingvolumejob.cpp @@ -186,11 +186,13 @@ private: if (m_root) { GeometryRenderer *gRenderer = m_root->renderComponent<GeometryRenderer>(); if (gRenderer) { - TrianglesExtractor extractor(gRenderer, m_manager); - volumes = extractor.extract(m_root->peerUuid()); - - Q_FOREACH (Qt3DCore::QBoundingVolume *v, volumes) - static_cast<TriangleBoundingVolume *>(v)->transform(*m_root->worldTransform()); + const QVector<Qt3DCore::QBoundingVolume *> localVolumes = gRenderer->triangleData(); + volumes.reserve(localVolumes.size()); + Q_FOREACH (const Qt3DCore::QBoundingVolume *v, localVolumes) { + TriangleBoundingVolume *worldVolume = new TriangleBoundingVolume(); + *worldVolume = static_cast<const TriangleBoundingVolume *>(v)->transformed(*m_root->worldTransform()); + volumes.push_back(worldVolume); + } } } return volumes; |