4#ifndef QPHYSICSMESHUTILS_P_P_H
5#define QPHYSICSMESHUTILS_P_P_H
18#include <QtQuick3DPhysics/qtquick3dphysicsglobal.h>
19#include <QtGui/QVector3D>
20#include <QtQuick3DUtils/private/qssgmesh_p.h>
25class PxConvexMeshGeometry;
31class QQuick3DGeometry;
45 if (m_ssgMesh.isValid()) {
46 auto b = m_ssgMesh.subsets().constFirst().bounds;
47 return { b.min, b.max };
52 void ref() { ++refCount; }
53 int deref() {
return --refCount; }
62 physx::PxConvexMesh *convexMeshQmlSource();
63 physx::PxConvexMesh *convexMeshGeometrySource();
64 physx::PxTriangleMesh *triangleMeshQmlSource();
65 physx::PxTriangleMesh *triangleMeshGeometrySource();
68 const QQuick3DGeometry *m_meshGeometry =
nullptr;
69 QSSGMesh::Mesh m_ssgMesh;
72 physx::PxConvexMesh *m_convexMesh =
nullptr;
73 physx::PxTriangleMesh *m_triangleMesh =
nullptr;
85 static QHash<QString, QQuick3DPhysicsMesh *> sourceMeshHash;
86 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()
static QT_BEGIN_NAMESPACE QQuick3DGeometry::Attribute attributeBySemantic(const QQuick3DGeometry *geometry, QQuick3DGeometry::Attribute::Semantic semantic)