summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-03-22 14:40:21 +0000
committerSean Harmer <sean.harmer@kdab.com>2016-03-24 07:28:00 +0000
commit10ab293bb81efc3b4323e559b9effb73daccf3a5 (patch)
tree9e0c4dcff4537afc30fc5da43330e3705cc25d6d
parentdcc34114d6cb091a69765588759eb44a30fcabdd (diff)
QGeometry creates creation changes
Change-Id: Ifc5cf15a2a82345ac7aa0af3517a8455900e0c30 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r--src/render/geometry/qgeometry.cpp10
-rw-r--r--src/render/geometry/qgeometry.h1
-rw-r--r--src/render/geometry/qgeometry_p.h6
3 files changed, 17 insertions, 0 deletions
diff --git a/src/render/geometry/qgeometry.cpp b/src/render/geometry/qgeometry.cpp
index dae199832..5bf06ad3d 100644
--- a/src/render/geometry/qgeometry.cpp
+++ b/src/render/geometry/qgeometry.cpp
@@ -183,6 +183,16 @@ void QGeometry::copy(const QNode *ref)
d_func()->m_boundingVolumePositionAttribute = qobject_cast<QAttribute *>(QNode::clone(geometry->d_func()->m_boundingVolumePositionAttribute));
}
+Qt3DCore::QNodeCreatedChangeBasePtr QGeometry::createNodeCreationChange() const
+{
+ auto creationChange = Qt3DCore::QNodeCreatedChangePtr<QGeometryData>::create(this);
+ auto &data = creationChange->data;
+ Q_D(const QGeometry);
+ data.attributeIds = qIdsForNodes(d->m_attributes);
+ data.boundingVolumePositionAttributeId = qIdForNode(d->m_boundingVolumePositionAttribute);
+ return creationChange;
+}
+
} // namespace Qt3DRender
QT_END_NAMESPACE
diff --git a/src/render/geometry/qgeometry.h b/src/render/geometry/qgeometry.h
index d7f938b0a..d826468ab 100644
--- a/src/render/geometry/qgeometry.h
+++ b/src/render/geometry/qgeometry.h
@@ -79,6 +79,7 @@ protected:
private:
Q_DECLARE_PRIVATE(QGeometry)
QT3D_CLONEABLE(QGeometry)
+ Qt3DCore::QNodeCreatedChangeBasePtr createNodeCreationChange() const Q_DECL_OVERRIDE;
};
} // namespace Qt3DRender
diff --git a/src/render/geometry/qgeometry_p.h b/src/render/geometry/qgeometry_p.h
index 11a2c3297..ee0abf2fb 100644
--- a/src/render/geometry/qgeometry_p.h
+++ b/src/render/geometry/qgeometry_p.h
@@ -70,6 +70,12 @@ public:
QAttribute *m_boundingVolumePositionAttribute;
};
+struct QGeometryData
+{
+ Qt3DCore::QNodeIdVector attributeIds;
+ Qt3DCore::QNodeId boundingVolumePositionAttributeId;
+};
+
} // namespace Qt3DRender
QT_END_NAMESPACE