7#include <QtQuick3D/QQuick3DGeometry>
8#include <geometry/PxCapsuleGeometry.h>
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
32
33
34
35
36
39
40
41
42
43
45QCapsuleShape::QCapsuleShape() =
default;
47QCapsuleShape::~QCapsuleShape()
49 delete m_physXGeometry;
52physx::PxGeometry *QCapsuleShape::getPhysXGeometry()
54 if (!m_physXGeometry || m_scaleDirty) {
55 updatePhysXGeometry();
58 return m_physXGeometry;
61float QCapsuleShape::diameter()
const
66void QCapsuleShape::setDiameter(
float newDiameter)
68 if (qFuzzyCompare(m_diameter, newDiameter))
70 m_diameter = newDiameter;
71 updatePhysXGeometry();
73 emit needsRebuild(
this);
74 emit diameterChanged();
77float QCapsuleShape::height()
const
82void QCapsuleShape::setHeight(
float newHeight)
84 if (qFuzzyCompare(m_height, newHeight))
87 updatePhysXGeometry();
89 emit needsRebuild(
this);
93void QCapsuleShape::updatePhysXGeometry()
95 delete m_physXGeometry;
96 QVector3D s = sceneScale();
99 m_physXGeometry =
new physx::PxCapsuleGeometry(rs * m_diameter * 0.5f, hs * m_height * 0.5f);
100 m_scaleDirty =
false;
Combined button and popup list for selecting options.