1/****************************************************************************
2**
3** Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB).
4** Contact: http://www.qt-project.org/legal
5**
6** This file is part of the Qt3D module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:LGPL3$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see http://www.qt.io/terms-conditions. For further
15** information use the contact form at http://www.qt.io/contact-us.
16**
17** GNU Lesser General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU Lesser
19** General Public License version 3 as published by the Free Software
20** Foundation and appearing in the file LICENSE.LGPLv3 included in the
21** packaging of this file. Please review the following information to
22** ensure the GNU Lesser General Public License version 3 requirements
23** will be met: https://www.gnu.org/licenses/lgpl.html.
24**
25** GNU General Public License Usage
26** Alternatively, this file may be used under the terms of the GNU
27** General Public License version 2.0 or later as published by the Free
28** Software Foundation and appearing in the file LICENSE.GPL included in
29** the packaging of this file. Please review the following information to
30** ensure the GNU General Public License version 2.0 requirements will be
31** met: http://www.gnu.org/licenses/gpl-2.0.html.
32**
33** $QT_END_LICENSE$
34**
35****************************************************************************/
36
37#include "qnodecreatedchange.h"
38#include "qnodecreatedchange_p.h"
39
40#include <Qt3DCore/qnode.h>
41
42#include <Qt3DCore/private/qnode_p.h>
43
44QT_BEGIN_NAMESPACE
45
46namespace Qt3DCore {
47
48QNodeCreatedChangeBasePrivate::QNodeCreatedChangeBasePrivate(const QNode *node)
49 : QSceneChangePrivate()
50 , m_parentId(node->parentNode() ? node->parentNode()->id() : QNodeId())
51 , m_metaObject(QNodePrivate::findStaticMetaObject(node->metaObject()))
52 , m_nodeEnabled(node->isEnabled())
53{
54}
55
56/*!
57 * \class Qt3DCore::QNodeCreatedChangeBase
58 * \inheaderfile Qt3DCore/QNodeCreatedChangeBase
59 * \inherits Qt3DCore::QSceneChange
60 * \inmodule Qt3DCore
61 * \brief The QNodeCreatedChangeBase class is the base class for all NodeCreated QSceneChange events.
62 *
63 * The QNodeCreatedChangeBase class is the base class for all QSceneChange events that
64 * have the changeType() NodeCreated. You should not need to instantiate this class.
65 * Usually you should be using one of its subclasses such as QNodeCreatedChange.
66 *
67 * You can subclass this to create your own node update types for communication between
68 * your QNode and QBackendNode subclasses when writing your own aspects.
69 */
70
71/*!
72 * \typedef Qt3DCore::QNodeCreatedChangeBasePtr
73 * \relates Qt3DCore::QNodeCreatedChangeBase
74 *
75 * A shared pointer for QNodeCreatedChangeBase.
76 */
77
78/*!
79 * Constructs a new QNodeCreatedChangeBase with \a node.
80 */
81QNodeCreatedChangeBase::QNodeCreatedChangeBase(const QNode *node)
82 : QSceneChange(*new QNodeCreatedChangeBasePrivate(node), NodeCreated, node->id())
83{
84}
85
86QNodeCreatedChangeBase::QNodeCreatedChangeBase(QNodeCreatedChangeBasePrivate &dd, const QNode *node)
87 : QSceneChange(dd, NodeCreated, node->id())
88{
89}
90
91QNodeCreatedChangeBase::~QNodeCreatedChangeBase()
92{
93}
94
95/*!
96 * \return parent id.
97 */
98QNodeId QNodeCreatedChangeBase::parentId() const Q_DECL_NOTHROW
99{
100 Q_D(const QNodeCreatedChangeBase);
101 return d->m_parentId;
102}
103
104/*!
105 * \return metaobject.
106 */
107const QMetaObject *QNodeCreatedChangeBase::metaObject() const Q_DECL_NOTHROW
108{
109 Q_D(const QNodeCreatedChangeBase);
110 return d->m_metaObject;
111}
112
113/*!
114 * \return node enabled.
115 */
116bool QNodeCreatedChangeBase::isNodeEnabled() const Q_DECL_NOTHROW
117{
118 Q_D(const QNodeCreatedChangeBase);
119 return d->m_nodeEnabled;
120}
121
122} // namespace Qt3DCore
123
124/*!
125 * \class Qt3DCore::QNodeCreatedChange
126 * \inheaderfile Qt3DCore/QNodeCreatedChange
127 * \inherits Qt3DCore::QNodeCreatedChangeBase
128 * \since 5.7
129 * \inmodule Qt3DCore
130 * \brief Used to notify when a node is created.
131 */
132
133QT_END_NAMESPACE
134