1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/// C++ type: <span style='color: green;'>```Qt3DCore::QBackendNode```</span>
///
/// <a href="http://doc.qt.io/qt-5/qt3dcore-qbackendnode.html">C++ documentation:</a> <div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The base class for all Qt3D backend nodes</p></div>
#[repr(C)]
pub struct BackendNode(u8);

impl BackendNode {
  /// C++ method: <span style='color: green;'>```bool Qt3DCore::QBackendNode::isEnabled() const```</span>
  ///
  /// <a href="http://doc.qt.io/qt-5/qt3dcore-qbackendnode.html#isEnabled">C++ documentation:</a> <div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the backend node is enabled.</p></div>
  pub fn is_enabled(&self) -> bool {
    unsafe { ::ffi::qt_3d_core_c_Qt3DCore_QBackendNode_isEnabled(self as *const ::backend_node::BackendNode) }
  }

  /// C++ method: <span style='color: green;'>```Qt3DCore::QBackendNode::Mode Qt3DCore::QBackendNode::mode() const```</span>
  ///
  /// <a href="http://doc.qt.io/qt-5/qt3dcore-qbackendnode.html#mode">C++ documentation:</a> <div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the mode of the backend mode.</p></div>
  pub fn mode(&self) -> ::backend_node::Mode {
    unsafe { ::ffi::qt_3d_core_c_Qt3DCore_QBackendNode_mode(self as *const ::backend_node::BackendNode) }
  }

  /// C++ method: <span style='color: green;'>```Qt3DCore::QBackendNode::QBackendNode```</span>
  ///
  /// This is an overloaded function. Available variants:
  ///
  ///
  ///
  /// ## Variant 1
  ///
  /// Rust arguments: ```fn new(()) -> ::cpp_utils::CppBox<::backend_node::BackendNode>```<br>
  /// C++ method: <span style='color: green;'>```[constructor] void Qt3DCore::QBackendNode::QBackendNode()```</span>
  ///
  /// <a href="http://doc.qt.io/qt-5/qt3dcore-qbackendnode.html#QBackendNode">C++ documentation:</a> <div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QBackendNode.</p></div>
  ///
  /// ## Variant 2
  ///
  /// Rust arguments: ```fn new(::backend_node::Mode) -> ::cpp_utils::CppBox<::backend_node::BackendNode>```<br>
  /// C++ method: <span style='color: green;'>```[constructor] void Qt3DCore::QBackendNode::QBackendNode(Qt3DCore::QBackendNode::Mode mode = ?)```</span>
  ///
  /// <a href="http://doc.qt.io/qt-5/qt3dcore-qbackendnode.html#QBackendNode">C++ documentation:</a> <div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QBackendNode.</p></div>
  pub fn new<Args>(args: Args) -> ::cpp_utils::CppBox<::backend_node::BackendNode>
    where Args: overloading::BackendNodeNewArgs
  {
    args.exec()
  }
  /// C++ method: <span style='color: green;'>```Qt3DCore::QNodeId Qt3DCore::QBackendNode::peerId() const```</span>
  ///
  /// <a href="http://doc.qt.io/qt-5/qt3dcore-qbackendnode.html#peerId">C++ documentation:</a> <div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the peer id of the backend node.</p></div>
  pub fn peer_id(&self) -> ::node_id::NodeId {
    {
      let mut object: ::node_id::NodeId =
        unsafe { ::cpp_utils::new_uninitialized::NewUninitialized::new_uninitialized() };
      unsafe {
        ::ffi::qt_3d_core_c_Qt3DCore_QBackendNode_peerId_to_output(self as *const ::backend_node::BackendNode,
                                                                   &mut object);
      }
      object
    }
  }

  /// C++ method: <span style='color: green;'>```void Qt3DCore::QBackendNode::setEnabled(bool enabled)```</span>
  ///
  /// <a href="http://doc.qt.io/qt-5/qt3dcore-qbackendnode.html#setEnabled">C++ documentation:</a> <div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables or disables the backend node by <i>enabled</i>.</p>
  /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3dcore-qbackendnode.html#isEnabled">isEnabled</a>().</p></div>
  pub fn set_enabled(&mut self, enabled: bool) {
    unsafe { ::ffi::qt_3d_core_c_Qt3DCore_QBackendNode_setEnabled(self as *mut ::backend_node::BackendNode, enabled) }
  }
}

impl ::cpp_utils::CppDeletable for ::backend_node::BackendNode {
  fn deleter() -> ::cpp_utils::Deleter<Self> {
    ::ffi::qt_3d_core_c_Qt3DCore_QBackendNode_delete
  }
}

/// C++ type: <span style='color: green;'>```Qt3DCore::QBackendNodeMapper```</span>
///
/// <a href="http://doc.qt.io/qt-5/qt3dcore-qbackendnodemapper.html">C++ documentation:</a> <div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates and maps backend nodes to their respective frontend nodes</p></div>
#[repr(C)]
pub struct BackendNodeMapper(u8);

impl BackendNodeMapper {
  /// C++ method: <span style='color: green;'>```pure virtual Qt3DCore::QBackendNode* Qt3DCore::QBackendNodeMapper::create(const QSharedPointer<Qt3DCore::QNodeCreatedChangeBase>& change) const```</span>
  ///
  /// <a href="http://doc.qt.io/qt-5/qt3dcore-qbackendnodemapper.html#create">C++ documentation:</a> <div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>TODO</p>
  /// <p><i>change</i></p>
  /// <p>Returns created node.</p></div>
  pub fn create(&self,
                change: &::shared_pointer::SharedPointerNodeCreatedChangeNodeCreatedChangeBase)
                -> *mut ::backend_node::BackendNode {
    unsafe { ::ffi::qt_3d_core_c_Qt3DCore_QBackendNodeMapper_create(self as *const ::backend_node::BackendNodeMapper, change as *const ::shared_pointer::SharedPointerNodeCreatedChangeNodeCreatedChangeBase) }
  }

  /// C++ method: <span style='color: green;'>```pure virtual void Qt3DCore::QBackendNodeMapper::destroy(Qt3DCore::QNodeId id) const```</span>
  ///
  /// <a href="http://doc.qt.io/qt-5/qt3dcore-qbackendnodemapper.html#destroy">C++ documentation:</a> <div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the backend node for the given node <i>id</i>.</p></div>
  pub fn destroy(&self, id: &::node_id::NodeId) {
    unsafe {
      ::ffi::qt_3d_core_c_Qt3DCore_QBackendNodeMapper_destroy(self as *const ::backend_node::BackendNodeMapper,
                                                              id as *const ::node_id::NodeId)
    }
  }

  /// C++ method: <span style='color: green;'>```pure virtual Qt3DCore::QBackendNode* Qt3DCore::QBackendNodeMapper::get(Qt3DCore::QNodeId id) const```</span>
  ///
  /// <a href="http://doc.qt.io/qt-5/qt3dcore-qbackendnodemapper.html#get">C++ documentation:</a> <div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns backend node for the given node <i>id</i>.</p></div>
  pub fn get(&self, id: &::node_id::NodeId) -> *mut ::backend_node::BackendNode {
    unsafe {
      ::ffi::qt_3d_core_c_Qt3DCore_QBackendNodeMapper_get(self as *const ::backend_node::BackendNodeMapper,
                                                          id as *const ::node_id::NodeId)
    }
  }
}

impl ::cpp_utils::CppDeletable for ::backend_node::BackendNodeMapper {
  fn deleter() -> ::cpp_utils::Deleter<Self> {
    ::ffi::qt_3d_core_c_Qt3DCore_QBackendNodeMapper_delete
  }
}

/// C++ type: <span style='color: green;'>```Qt3DCore::QBackendNode::Mode```</span>
#[derive(Debug, PartialEq, Eq, Clone)]
#[repr(C)]
pub enum Mode {
  /// C++ enum variant: <span style='color: green;'>```ReadOnly = 0```</span>
  Only = 0,
  /// C++ enum variant: <span style='color: green;'>```ReadWrite = 1```</span>
  Write = 1,
}

/// Types for emulating overloading for overloaded functions in this module
pub mod overloading {
  /// This trait represents a set of arguments accepted by [BackendNode::new](../struct.BackendNode.html#method.new) method.
  pub trait BackendNodeNewArgs {
    fn exec(self) -> ::cpp_utils::CppBox<::backend_node::BackendNode>;
  }
  impl BackendNodeNewArgs for ::backend_node::Mode {
    fn exec(self) -> ::cpp_utils::CppBox<::backend_node::BackendNode> {
      let mode = self;
      let ffi_result = unsafe { ::ffi::qt_3d_core_c_Qt3DCore_QBackendNode_new_mode(mode) };
      unsafe { ::cpp_utils::CppBox::new(ffi_result) }
    }
  }
  impl BackendNodeNewArgs for () {
    fn exec(self) -> ::cpp_utils::CppBox<::backend_node::BackendNode> {

      let ffi_result = unsafe { ::ffi::qt_3d_core_c_Qt3DCore_QBackendNode_new_no_args() };
      unsafe { ::cpp_utils::CppBox::new(ffi_result) }
    }
  }
}