18#include <QtQuick3DUtils/private/qtquick3dutilsglobal_p.h>
19#include <QtQuick3DUtils/private/qssgbounds3_p.h>
20#include <QtQuick3DUtils/private/qssgassert_p.h>
22#include <QtGui/QVector2D>
23#include <QtCore/QVector>
36 bool isNull()
const {
return !m_owner || m_idx < size_t(FallbackIndex::Count); }
64 enum class FallbackIndex :
quint8
95 m_nodes.emplace_back();
96 return {
this, m_nodes.size() - 1 };
106 using FallbackIndex = QSSGMeshBVHNode::FallbackIndex;
107 size_t getNodeIndex(
size_t idx, FallbackIndex op)
const
109 const bool valid = (idx >= size_t(FallbackIndex::Count) && idx < m_nodes.size());
110 return (valid * idx) + (!valid * size_t(op));
115 return m_nodes[getNodeIndex(idx, FallbackIndex::InvalidWrite)];
120 return m_nodes[getNodeIndex(idx, FallbackIndex::InvalidRead)];
130 return &m_owner->value(m_idx);
135 return &m_owner->mutableValue(m_idx);
Class representing 3D range or axis aligned bounding box.
QSSGMeshBVHNode * operator->() const
QSSGMeshBVHNode::Handle newHandle()
const QSSGMeshBVHRoots & roots() const
const QSSGMeshBVHNodes & nodes() const
const QSSGMeshBVHTriangles & triangles() const
The QVector2D class represents a vector or vertex in 2D space.
The QVector3D class represents a vector or vertex in 3D space.
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLenum GLenum GLsizei count
GLenum GLuint GLintptr offset
std::vector< QSSGMeshBVHNode > QSSGMeshBVHNodes
std::vector< QSSGMeshBVHNode::Handle > QSSGMeshBVHRoots
std::vector< QSSGMeshBVHTriangle > QSSGMeshBVHTriangles