5#include <QtQuick3D/private/qquick3dobject_p.h>
6#include <foundation/PxTransform.h>
126 for (
auto shape : std::as_const(m_collisionShapes))
127 shape->disconnect(
this);
133 return QQmlListProperty<QAbstractCollisionShape>(
134 this,
nullptr, QAbstractPhysicsNode::qmlAppendShape,
135 QAbstractPhysicsNode::qmlShapeCount, QAbstractPhysicsNode::qmlShapeAt,
136 QAbstractPhysicsNode::qmlClearShapes);
141 return m_collisionShapes;
167 return m_sendContactReports;
181 return m_receiveContactReports;
195 return m_sendTriggerReports;
198void QAbstractPhysicsNode::setSendTriggerReports(
bool sendTriggerReports)
204 emit sendTriggerReportsChanged(m_sendTriggerReports);
209 return m_receiveTriggerReports;
212void QAbstractPhysicsNode::setReceiveTriggerReports(
bool receiveTriggerReports)
218 emit receiveTriggerReportsChanged(m_receiveTriggerReports);
223 const QVector<QVector3D> &impulses,
224 const QVector<QVector3D> &normals)
229void QAbstractPhysicsNode::onShapeDestroyed(
QObject *
object)
234void QAbstractPhysicsNode::onShapeNeedsRebuild(
QObject * )
236 m_shapesDirty =
true;
239void QAbstractPhysicsNode::qmlAppendShape(QQmlListProperty<QAbstractCollisionShape> *
list,
242 if (shape ==
nullptr)
248 if (shape->parentItem() ==
nullptr) {
264 &QAbstractPhysicsNode::onShapeDestroyed);
268 &QAbstractPhysicsNode::onShapeNeedsRebuild);
272QAbstractPhysicsNode::qmlShapeAt(QQmlListProperty<QAbstractCollisionShape> *
list,
qsizetype index)
278qsizetype QAbstractPhysicsNode::qmlShapeCount(QQmlListProperty<QAbstractCollisionShape> *
list)
284void QAbstractPhysicsNode::qmlClearShapes(QQmlListProperty<QAbstractCollisionShape> *
list)
287 for (
const auto &shape :
std::as_const(
self->m_collisionShapes)) {
288 if (shape->parentItem() ==
nullptr)
291 self->m_hasStaticShapes =
false;
292 for (
auto shape :
std::as_const(
self->m_collisionShapes))
299 return m_filterGroup;
302void QAbstractPhysicsNode::setfilterGroup(
int newfilterGroup)
304 if (m_filterGroup == newfilterGroup)
306 m_filterGroup = newfilterGroup;
307 m_filtersDirty =
true;
308 emit filterGroupChanged();
313 return m_filterIgnoreGroups;
316void QAbstractPhysicsNode::setFilterIgnoreGroups(
int newFilterIgnoreGroups)
318 if (m_filterIgnoreGroups == newFilterIgnoreGroups)
320 m_filterIgnoreGroups = newFilterIgnoreGroups;
321 m_filtersDirty =
true;
322 emit filterIgnoreGroupsChanged();
void needsRebuild(QObject *)
virtual bool isStaticShape() const =0
~QAbstractPhysicsNode() override
void sendContactReportsChanged(float sendContactReports)
const QVector< QAbstractCollisionShape * > & getCollisionShapesList() const
bool receiveTriggerReports
void updateFromPhysicsTransform(const physx::PxTransform &transform)
QAbstractPhysicsNode()
\qmltype PhysicsNode \inherits Node \inqmlmodule QtQuick3D.Physics
void bodyContact(QAbstractPhysicsNode *body, const QVector< QVector3D > &positions, const QVector< QVector3D > &impulses, const QVector< QVector3D > &normals)
void setSendContactReports(bool sendContactReports)
void setReceiveContactReports(bool receiveContactReports)
void receiveContactReportsChanged(float receiveContactReports)
bool receiveContactReports
void registerContact(QAbstractPhysicsNode *body, const QVector< QVector3D > &positions, const QVector< QVector3D > &impulses, const QVector< QVector3D > &normals)
QQmlListProperty< QAbstractCollisionShape > collisionShapes
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
void destroyed(QObject *=nullptr)
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointe...
static void registerNode(QAbstractPhysicsNode *physicsNode)
static void deregisterNode(QAbstractPhysicsNode *physicsNode)
The QQuaternion class represents a quaternion consisting of a vector and scalar.
void setRotation(const QQuaternion &rotation)
Q_INVOKABLE QVector3D mapPositionFromScene(const QVector3D &scenePosition) const
\qmlmethod vector3d QtQuick3D::Node::mapPositionFromScene(vector3d scenePosition)
QQuick3DNode * parentNode() const
QQuaternion sceneRotation
void refSceneManager(QQuick3DSceneManager &)
static QQuick3DObjectPrivate * get(QQuick3DObject *item)
\qmltype Object3D \inqmlmodule QtQuick3D \instantiates QQuick3DObject \inherits QtObject
QQuick3DObject * parent
\qmlproperty Object3D QtQuick3D::Object3D::parent This property holds the parent of the Object3D in a...
void setParentItem(QQuick3DObject *parentItem)
void clear()
Clears the contents of the string and makes it null.
void push_back(QChar c)
This is an overloaded member function, provided for convenience. It differs from the above function o...
const QChar at(qsizetype i) const
Returns the character at the given index position in the string.
qsizetype count(QChar c, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
The QVector3D class represents a vector or vertex in 3D space.
Combined button and popup list for selecting options.
static const QCssKnownValue positions[NumKnownPositionModes - 1]
n void setPosition(void) \n\
GLuint GLenum GLenum transform
myObject disconnect()
[26]