5#ifndef QPHYSICSMESHUTILS_P_P_H
6#define QPHYSICSMESHUTILS_P_P_H
19#include <QtQuick3DPhysics/qtquick3dphysicsglobal.h>
20#include <QtGui/QVector3D>
21#include <QtQuick3DUtils/private/qssgmesh_p.h>
26class PxConvexMeshGeometry;
32class QQuick3DGeometry;
46 if (m_ssgMesh.isValid()) {
47 auto b = m_ssgMesh.subsets().constFirst().bounds;
48 return { b.min, b.max };
53 void ref() { ++refCount; }
54 int deref() {
return --refCount; }
63 physx::PxConvexMesh *convexMeshQmlSource();
64 physx::PxConvexMesh *convexMeshGeometrySource();
65 physx::PxTriangleMesh *triangleMeshQmlSource();
66 physx::PxTriangleMesh *triangleMeshGeometrySource();
69 const QQuick3DGeometry *m_meshGeometry =
nullptr;
70 QSSGMesh::Mesh m_ssgMesh;
73 physx::PxConvexMesh *m_convexMesh =
nullptr;
74 physx::PxTriangleMesh *m_triangleMesh =
nullptr;
86 static QHash<QString, QQuick3DPhysicsMesh *> sourceMeshHash;
87 static QHash<QQuick3DGeometry *, QQuick3DPhysicsMesh *> geometryMeshHash;
static void releaseMesh(QQuick3DPhysicsMesh *mesh)
static QQuick3DPhysicsMesh * getMesh(const QUrl &source, QObject *contextObject)
static QQuick3DPhysicsMesh * getMesh(QQuick3DGeometry *source)
QQuick3DPhysicsMesh(const QQuick3DGeometry *geometrySource)
QQuick3DPhysicsMesh(const QString &qmlSource)
physx::PxTriangleMesh * triangleMesh()
QList< QVector3D > positions()
physx::PxConvexMesh * convexMesh()
QPair< QVector3D, QVector3D > bounds()
void writeCachedConvexMesh(const QString &filePath, physx::PxDefaultMemoryOutputStream &buf)
void writeCachedTriangleMesh(const QString &filePath, physx::PxDefaultMemoryOutputStream &buf)
Combined button and popup list for selecting options.
static QT_BEGIN_NAMESPACE QQuick3DGeometry::Attribute attributeBySemantic(const QQuick3DGeometry *geometry, QQuick3DGeometry::Attribute::Semantic semantic)