summaryrefslogtreecommitdiffstats
path: root/src/render/jobs
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2015-11-17 10:09:34 +0100
committerAndy Nichols <andy.nichols@theqtcompany.com>2015-11-24 15:02:50 +0000
commit3798499b764f61609d463b150054590b6b1da768 (patch)
treef7c4447237d0937f45fad8cd3e574ccdfefd251a /src/render/jobs
parenta06437ae2d9096b85377a6fb9076d05c18db157f (diff)
PickBoundingVolumeJob: use triangle volumes stored in GeometryRenderer
Change-Id: I756cdb04c72a7a41787e1fcac8ae3da659ad8555 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Diffstat (limited to 'src/render/jobs')
-rw-r--r--src/render/jobs/pickboundingvolumejob.cpp12
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;