summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2017-02-19 15:55:24 +0000
committerMike Krus <mike.krus@kdab.com>2017-02-22 07:09:04 +0000
commit63ea9813791d62c18e7a5c1a1ce03e1318f8203c (patch)
treee562fcccc0e90adeb55a00d71586cc1868c686ce
parent922078911d131358f91ec25b7366ff6ac5cb55a7 (diff)
Rename CoordinateVisitor to BufferVisitor
Point picking will need a point/coordinate visitor to traverse coordinate in order. BufferVisitor traverses a single buffer irrespective of the draw order. It reveals (another, pre-existing) problem with bounding volume computations: it computes based on all the values in a buffer. In the case of indexed primitives, only a subset of those may be used and the bounding volume may be very different. Will fix this for 5.10 using proper coordinate visitor Change-Id: Ie86f26d7066260d69da9639eb1dab823c650333c Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
-rw-r--r--src/render/backend/buffervisitor_p.h (renamed from src/render/backend/coordinatevisitor_p.h)14
-rw-r--r--src/render/backend/render-backend.pri2
-rw-r--r--src/render/jobs/calcboundingvolumejob.cpp10
3 files changed, 13 insertions, 13 deletions
diff --git a/src/render/backend/coordinatevisitor_p.h b/src/render/backend/buffervisitor_p.h
index e7687ab3a..7149e21ae 100644
--- a/src/render/backend/coordinatevisitor_p.h
+++ b/src/render/backend/buffervisitor_p.h
@@ -37,8 +37,8 @@
**
****************************************************************************/
-#ifndef QT3DRENDER_RENDER_COORDINATEVISITOR_P_H
-#define QT3DRENDER_RENDER_COORDINATEVISITOR_P_H
+#ifndef QT3DRENDER_RENDER_BUFFERVISITOR_P_H
+#define QT3DRENDER_RENDER_BUFFERVISITOR_P_H
//
// W A R N I N G
@@ -73,14 +73,14 @@ namespace Render {
template <typename ValueType, QAttribute::VertexBaseType VertexBaseType, uint dataSize>
-class Q_AUTOTEST_EXPORT CoordinateVisitor
+class Q_AUTOTEST_EXPORT BufferVisitor
{
public:
- explicit CoordinateVisitor(NodeManagers *manager)
+ explicit BufferVisitor(NodeManagers *manager)
: m_manager(manager)
{
}
- virtual ~CoordinateVisitor() { }
+ virtual ~BufferVisitor() { }
virtual void visit(uint ndx, ValueType x) {
Q_UNUSED(ndx); Q_UNUSED(x);
@@ -200,7 +200,7 @@ protected:
NodeManagers *m_manager;
};
-typedef CoordinateVisitor<float, QAttribute::Float, 3> Coordinate3fVisitor;
+typedef BufferVisitor<float, QAttribute::Float, 3> Buffer3fVisitor;
} // namespace Render
@@ -209,4 +209,4 @@ typedef CoordinateVisitor<float, QAttribute::Float, 3> Coordinate3fVisitor;
QT_END_NAMESPACE
-#endif // QT3DRENDER_RENDER_COORDINATEVISITOR_P_H
+#endif // QT3DRENDER_RENDER_BUFFERVISITOR_P_H
diff --git a/src/render/backend/render-backend.pri b/src/render/backend/render-backend.pri
index f694e7cea..14e9c6370 100644
--- a/src/render/backend/render-backend.pri
+++ b/src/render/backend/render-backend.pri
@@ -29,7 +29,7 @@ HEADERS += \
$$PWD/triangleboundingvolume_p.h \
$$PWD/openglvertexarrayobject_p.h \
$$PWD/trianglesextractor_p.h \
- $$PWD/coordinatevisitor_p.h \
+ $$PWD/buffervisitor_p.h \
$$PWD/bufferutils_p.h \
$$PWD/trianglesvisitor_p.h \
$$PWD/abstractrenderer_p.h \
diff --git a/src/render/jobs/calcboundingvolumejob.cpp b/src/render/jobs/calcboundingvolumejob.cpp
index 2f2d471d6..7bbab307c 100644
--- a/src/render/jobs/calcboundingvolumejob.cpp
+++ b/src/render/jobs/calcboundingvolumejob.cpp
@@ -50,7 +50,7 @@
#include <Qt3DRender/private/attribute_p.h>
#include <Qt3DRender/private/buffer_p.h>
#include <Qt3DRender/private/sphere_p.h>
-#include <Qt3DRender/private/coordinatevisitor_p.h>
+#include <Qt3DRender/private/buffervisitor_p.h>
#include <QtCore/qmath.h>
#include <QtConcurrent/QtConcurrent>
@@ -119,11 +119,11 @@ private:
Sphere m_volume;
NodeManagers *m_manager;
- class FindExtremePoints : public Coordinate3fVisitor
+ class FindExtremePoints : public Buffer3fVisitor
{
public:
FindExtremePoints(NodeManagers *manager)
- : Coordinate3fVisitor(manager)
+ : Buffer3fVisitor(manager)
, xMin(0.0f), xMax(0.0f), yMin(0.0f), yMax(0.0f), zMin(0.0f), zMax(0.0f)
{ }
@@ -166,11 +166,11 @@ private:
}
};
- class ExpandSphere : public Coordinate3fVisitor
+ class ExpandSphere : public Buffer3fVisitor
{
public:
ExpandSphere(NodeManagers *manager, Sphere& volume)
- : Coordinate3fVisitor(manager), m_volume(volume)
+ : Buffer3fVisitor(manager), m_volume(volume)
{ }
Sphere& m_volume;