Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qsphereshape.cpp
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#include "qsphereshape_p.h"
5#include <QtQuick3D/QQuick3DGeometry>
6
7#include <geometry/PxSphereGeometry.h>
8
10
31
33{
34 delete m_physXGeometry;
35}
36
38{
39 return m_diameter;
40}
41
43{
44 if (!m_physXGeometry || m_scaleDirty) {
45 updatePhysXGeometry();
46 }
47 return m_physXGeometry;
48}
49
50void QSphereShape::setDiameter(float diameter)
51{
52 if (qFuzzyCompare(m_diameter, diameter))
53 return;
54
55 m_diameter = diameter;
56 updatePhysXGeometry();
57
58 emit needsRebuild(this);
59 emit diameterChanged(m_diameter);
60}
61
62void QSphereShape::updatePhysXGeometry()
63{
64 delete m_physXGeometry;
65 auto s = sceneScale();
66 m_physXGeometry = new physx::PxSphereGeometry(m_diameter * 0.5f * s.x());
67 m_scaleDirty = false;
68}
69
void needsRebuild(QObject *)
QVector3D sceneScale
void diameterChanged(float diameter)
physx::PxGeometry * getPhysXGeometry() override
void setDiameter(float diameter)
QSphereShape()
\qmltype SphereShape \inqmlmodule QtQuick3D.Physics \inherits CollisionShape
Combined button and popup list for selecting options.
bool qFuzzyCompare(qfloat16 p1, qfloat16 p2) noexcept
Definition qfloat16.h:333
GLdouble s
[6]
Definition qopenglext.h:235
#define emit